diff options
author | Fernando Nasser <fnasser@redhat.com> | 2000-10-13 20:31:38 +0000 |
---|---|---|
committer | Fernando Nasser <fnasser@redhat.com> | 2000-10-13 20:31:38 +0000 |
commit | 3c151aef2eb34f45d082b16456716bb297c32839 (patch) | |
tree | fd9a1e2307e05b686a50b14f9ab70a7ce41da22f /gdb/varobj.c | |
parent | 127cd060697bde98439359b9b933d03cb0b855e2 (diff) | |
download | gdb-3c151aef2eb34f45d082b16456716bb297c32839.tar.gz |
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.
Diffstat (limited to 'gdb/varobj.c')
-rw-r--r-- | gdb/varobj.c | 29 |
1 files changed, 16 insertions, 13 deletions
diff --git a/gdb/varobj.c b/gdb/varobj.c index 9205e9d73ea..b1c44a0c86b 100644 --- a/gdb/varobj.c +++ b/gdb/varobj.c @@ -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! */ |