Change varobj_dynamic::saved_item to unique_ptr
authorTom Tromey <tom@tromey.com>
Fri, 11 Dec 2020 16:33:36 +0000 (09:33 -0700)
committerTom Tromey <tom@tromey.com>
Fri, 11 Dec 2020 16:33:39 +0000 (09:33 -0700)
This changes varobj_dynamic::saved_item to be a unique_ptr.

gdb/ChangeLog
2020-12-11  Tom Tromey  <tom@tromey.com>

* varobj.c (struct varobj_dynamic) <saved_item>: Now unique_ptr.
(varobj_clear_saved_item, update_dynamic_varobj_children):
Update.

gdb/ChangeLog
gdb/varobj.c

index d2c902cd4deca08f73bca81360f698706442aa30..6e6fcfb7be3b94b7e7f6c91c7e73ca1020257537 100644 (file)
@@ -1,3 +1,9 @@
+2020-12-11  Tom Tromey  <tom@tromey.com>
+
+       * varobj.c (struct varobj_dynamic) <saved_item>: Now unique_ptr.
+       (varobj_clear_saved_item, update_dynamic_varobj_children):
+       Update.
+
 2020-12-11  Tom Tromey  <tom@tromey.com>
 
        * varobj.c (update_dynamic_varobj_children): Update.
index e9856ea4eb39212c80339765f54bc4df89711de1..92bb60fd9d84593fd61dc7261e93bde66b1a45bc 100644 (file)
@@ -131,7 +131,7 @@ struct varobj_dynamic
      already reported.  However, we don't want to install this value
      when we read it, because that will mess up future updates.  So,
      we stash it here instead.  */
-  varobj_item *saved_item = NULL;
+  std::unique_ptr<varobj_item> saved_item;
 };
 
 /* Private function prototypes */
@@ -680,8 +680,7 @@ varobj_clear_saved_item (struct varobj_dynamic *var)
   if (var->saved_item != NULL)
     {
       value_decref (var->saved_item->value);
-      delete var->saved_item;
-      var->saved_item = NULL;
+      var->saved_item.reset (nullptr);
     }
 }
 
@@ -723,10 +722,7 @@ update_dynamic_varobj_children (struct varobj *var,
 
       /* See if there was a leftover from last time.  */
       if (var->dynamic->saved_item != NULL)
-       {
-         item = std::unique_ptr<varobj_item> (var->dynamic->saved_item);
-         var->dynamic->saved_item = NULL;
-       }
+       item = std::move (var->dynamic->saved_item);
       else
        {
          item = var->dynamic->child_iter->next ();
@@ -757,7 +753,7 @@ update_dynamic_varobj_children (struct varobj *var,
        }
       else
        {
-         var->dynamic->saved_item = item.release ();
+         var->dynamic->saved_item = std::move (item);
 
          /* We want to truncate the child list just before this
             element.  */