Simplify varobj "change" logic
authorTom Tromey <tromey@adacore.com>
Thu, 26 May 2022 16:40:32 +0000 (10:40 -0600)
committerTom Tromey <tromey@adacore.com>
Mon, 6 Jun 2022 18:50:34 +0000 (12:50 -0600)
varobj used to store 'print_value' as a C string, where NULL was a
valid value, and so it had logic to handle this situation.  However,
at some point this was changed to be a std::string, and so the code
can be simplified in this spot.

gdb/varobj.c

index 741fdb6a03b16c75c574455d41e98165bf44b6df..1aca015a21ab13cbe4011a9a1446e31d105d7a43 100644 (file)
@@ -1344,11 +1344,8 @@ install_new_value (struct varobj *var, struct value *value, bool initial)
     {
       print_value = varobj_value_get_print_value (var->value.get (),
                                                  var->format, var);
-      if ((var->print_value.empty () && !print_value.empty ())
-         || (!var->print_value.empty () && print_value.empty ())
-         || (!var->print_value.empty () && !print_value.empty ()
-             && var->print_value != print_value))
-         changed = true;
+      if (var->print_value != print_value)
+       changed = true;
     }
   var->print_value = print_value;