2000-10-13 Fernando Nasser <fnasser@totem.to.cygnus.com>
authorFernando Nasser <fnasser@redhat.com>
Fri, 13 Oct 2000 20:31:38 +0000 (20:31 +0000)
committerFernando Nasser <fnasser@redhat.com>
Fri, 13 Oct 2000 20:31:38 +0000 (20:31 +0000)
* 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.

gdb/ChangeLog
gdb/varobj.c

index e0a7ba2ecb74ef3c548b740d767ddf28f62c671f..d4a44bbfad9ba1e941d0355753942b625bf8905d 100644 (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>
index 9205e9d73ea04aeb306d405ed335fafd800516de..b1c44a0c86b1a6b3965ac60cae65ebd736523801 100644 (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! */