Use gdbpy_ref in bpfinishpy_out_of_scope
authorTom Tromey <tom@tromey.com>
Sun, 20 Nov 2016 17:25:29 +0000 (10:25 -0700)
committerTom Tromey <tom@tromey.com>
Wed, 11 Jan 2017 02:14:01 +0000 (19:14 -0700)
This changes bpfinishpy_out_of_scope to use gdbpy_ref.

2017-01-10  Tom Tromey  <tom@tromey.com>

* python/py-finishbreakpoint.c (bpfinishpy_out_of_scope): Use
gdbpy_ref.

gdb/ChangeLog
gdb/python/py-finishbreakpoint.c

index 73e120d5a174521dd3d2a4f0f343c78420e77909..912b51aefa083c6c0776c6f64164858497b7c990 100644 (file)
@@ -1,3 +1,8 @@
+2017-01-10  Tom Tromey  <tom@tromey.com>
+
+       * python/py-finishbreakpoint.c (bpfinishpy_out_of_scope): Use
+       gdbpy_ref.
+
 2017-01-10  Tom Tromey  <tom@tromey.com>
 
        * python/py-cmd.c (cmdpy_completer_helper): Use gdbpy_ref.  Remove
index 4e49ec70fb3ea3d1de7a1760f6809a29df45f11b..7f30d86055108f642497a05959340333873e7207 100644 (file)
@@ -30,6 +30,7 @@
 #include "inferior.h"
 #include "block.h"
 #include "location.h"
+#include "py-ref.h"
 
 /* Function that is called when a Python finish bp is found out of scope.  */
 static char * const outofscope_func = "out_of_scope";
@@ -337,12 +338,10 @@ bpfinishpy_out_of_scope (struct finish_breakpoint_object *bpfinish_obj)
   if (bpfinish_obj->py_bp.bp->enable_state == bp_enabled
       && PyObject_HasAttrString (py_obj, outofscope_func))
     {
-      PyObject *meth_result;
-
-      meth_result = PyObject_CallMethod (py_obj, outofscope_func, NULL);
+      gdbpy_ref meth_result (PyObject_CallMethod (py_obj, outofscope_func,
+                                                 NULL));
       if (meth_result == NULL)
        gdbpy_print_stack ();
-      Py_XDECREF (meth_result);
     }
 
   delete_breakpoint (bpfinish_obj->py_bp.bp);