diff src/ex_cmds2.c @ 13274:f4b4162264b1 v8.0.1511

patch 8.0.1511: some code for the debugger watch expression is clumsy commit https://github.com/vim/vim/commit/3198870137df64214317151726648af8e56f1729 Author: Bram Moolenaar <Bram@vim.org> Date: Tue Feb 13 12:57:42 2018 +0100 patch 8.0.1511: some code for the debugger watch expression is clumsy Problem: Some code for the debugger watch expression is clumsy. Solution: Clean up the code.
author Christian Brabandt <cb@256bit.org>
date Tue, 13 Feb 2018 13:00:06 +0100
parents 50e1077e0c3d
children b5806be0b36d
line wrap: on
line diff
--- a/src/ex_cmds2.c
+++ b/src/ex_cmds2.c
@@ -988,23 +988,20 @@ debuggy_find(
 		}
 		else
 		{
-		    typval_T  val3;
-
-		    if (typval_copy(bp->dbg_val, &val3) == OK)
+		    if (typval_compare(tv, bp->dbg_val, TYPE_EQUAL,
+							     TRUE, FALSE) == OK
+			    && tv->vval.v_number == FALSE)
 		    {
-			if (typval_compare(tv, &val3, TYPE_EQUAL,
-						       TRUE, FALSE, TRUE) == OK
-				&& tv->vval.v_number == FALSE)
-			{
-			    typval_T *v;
-
-			    line = TRUE;
-			    debug_oldval = typval_tostring(bp->dbg_val);
-			    v = eval_expr(bp->dbg_name, NULL);
-			    debug_newval = typval_tostring(v);
-			    free_tv(bp->dbg_val);
-			    bp->dbg_val = v;
-			}
+			typval_T *v;
+
+			line = TRUE;
+			debug_oldval = typval_tostring(bp->dbg_val);
+			/* Need to evaluate again, typval_compare() overwrites
+			 * "tv". */
+			v = eval_expr(bp->dbg_name, NULL);
+			debug_newval = typval_tostring(v);
+			free_tv(bp->dbg_val);
+			bp->dbg_val = v;
 		    }
 		    free_tv(tv);
 		}