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 73e120d..912b51a 100644 (file)
@@ -1,5 +1,10 @@
 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
        extra incref.
        (cmdpy_completer_handle_brkchars, cmdpy_completer, cmdpy_init):
index 4e49ec7..7f30d86 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);