Use gdbpy_ref in instantiate_pretty_printer
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:42 +0000 (09:33 -0700)
This changes instantiate_pretty_printer to use gdbpy_ref, removing a
call to Py_DECREF.

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

* varobj.c (instantiate_pretty_printer): Use gdbpy_ref.

gdb/ChangeLog
gdb/varobj.c

index f61cfda48dabe48b4a4a60b064f84af43cef10d1..90bfac77470a3faa393df2e5e5e40fa641167605 100644 (file)
@@ -1,3 +1,7 @@
+2020-12-11  Tom Tromey  <tom@tromey.com>
+
+       * varobj.c (instantiate_pretty_printer): Use gdbpy_ref.
+
 2020-12-11  Tom Tromey  <tom@tromey.com>
 
        * varobj.c (varobj_clear_saved_item): Remove.
index 941c38c1ceba9c410fa89896c1ab0417ef13733e..ba0e1357d3f816d86a5cf8764ce2f07eec0f5cf2 100644 (file)
@@ -459,16 +459,11 @@ varobj_delete (struct varobj *var, bool only_children)
 static PyObject *
 instantiate_pretty_printer (PyObject *constructor, struct value *value)
 {
-  PyObject *val_obj = NULL; 
-  PyObject *printer;
-
-  val_obj = value_to_value_object (value);
-  if (! val_obj)
+  gdbpy_ref<> val_obj (value_to_value_object (value));
+  if (val_obj == nullptr)
     return NULL;
 
-  printer = PyObject_CallFunctionObjArgs (constructor, val_obj, NULL);
-  Py_DECREF (val_obj);
-  return printer;
+  return PyObject_CallFunctionObjArgs (constructor, val_obj.get (), NULL);
 }
 
 #endif