2000-10-13 Fernando Nasser <fnasser@totem.to.cygnus.com>

* varobj.c (varobj_update): Prevent uninitialized error code to be
	returned on type_changed.  Also, prevent value_equal() to be called
	for the types we do not want to test for updates.
This commit is contained in:
Fernando Nasser 2000-10-13 20:31:38 +00:00
parent b9a6918857
commit ae093f962b
2 changed files with 22 additions and 13 deletions

View File

@ -1,3 +1,9 @@
2000-10-13 Fernando Nasser <fnasser@totem.to.cygnus.com>
* varobj.c (varobj_update): Prevent uninitialized error code to be
returned on type_changed. Also, prevent value_equal() to be called
for the types we do not want to test for updates.
2000-10-11 Fernando Nasser <fnasser@totem.to.cygnus.com>
From Grant Edwards <grante@visi.com>

View File

@ -917,21 +917,24 @@ varobj_update (struct varobj *var, struct varobj ***changelist)
/* Initialize a stack for temporary results */
vpush (&result, NULL);
if (type_changed || !my_value_equal (var->value, new, &error2))
/* If this is a "use_selected_frame" varobj, and its type has changed,
them note that it's changed. */
if (type_changed)
{
/* Note that it's changed There a couple of exceptions here,
though. We don't want some types to be reported as
"changed". The exception to this is if this is a
"use_selected_frame" varobj, and its type has changed. */
if (type_changed || type_changeable (var))
{
vpush (&result, var);
changed++;
}
vpush (&result, var);
changed++;
}
/* If values are not equal, note that it's changed.
There a couple of exceptions here, though.
We don't want some types to be reported as "changed". */
else if (type_changeable (var) && !my_value_equal (var->value, new, &error2))
{
vpush (&result, var);
changed++;
/* error2 replaces var->error since this new value
WILL replace the old one. */
var->error = error2;
}
/* error2 replaces var->error since this new value
WILL replace the old one. */
var->error = error2;
/* We must always keep around the new value for this root
variable expression, or we lose the updated children! */