2006-11-29 Vladimir Prus <vladimir@codesourcery.com>

* varobj.c (varobj_set_value): Don't compare the old
        and the new value here.  Don't assign new value here.
        Instead, call install_new_value.
This commit is contained in:
Vladimir Prus 2006-11-29 06:41:13 +00:00
parent ba3d1a1c2d
commit ae09783548
2 changed files with 15 additions and 5 deletions

View File

@ -1,3 +1,9 @@
2006-11-29 Vladimir Prus <vladimir@codesourcery.com>
* varobj.c (varobj_set_value): Don't compare the old
and the new value here. Don't assign new value here.
Instead, call install_new_value.
2006-11-28 Daniel Jacobowitz <dan@codesourcery.com>
* regformats/reg-mips64.dat: New file.

View File

@ -841,18 +841,22 @@ varobj_set_value (struct varobj *var, char *expression)
array's content. */
value = coerce_array (value);
if (!value_contents_equal (var->value, value))
var->updated = 1;
/* The new value may be lazy. gdb_value_assign, or
rather value_contents, will take care of this.
If fetching of the new value will fail, gdb_value_assign
with catch the exception. */
if (!gdb_value_assign (var->value, value, &val))
return 0;
value_free (var->value);
release_value (val);
var->value = val;
/* If the value has changed, record it, so that next -var-update can
report this change. If a variable had a value of '1', we've set it
to '333' and then set again to '1', when -var-update will report this
variable as changed -- because the first assignment has set the
'updated' flag. There's no need to optimize that, because return value
of -var-update should be considered an approximation. */
var->updated = install_new_value (var, val, 0 /* Compare values. */);
input_radix = saved_input_radix;
return 1;
}