* python/py-finishbreakpoint.c (bpfinishpy_out_of_scope):
authorTom Tromey <tromey@redhat.com>
Mon, 20 May 2013 20:27:44 +0000 (20:27 +0000)
committerTom Tromey <tromey@redhat.com>
Mon, 20 May 2013 20:27:44 +0000 (20:27 +0000)
Decref the reslut of PyObject_CallMethod.

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

index 5c4e290..5103cbc 100644 (file)
@@ -1,5 +1,10 @@
 2013-05-20  Tom Tromey  <tromey@redhat.com>
 
+       * python/py-finishbreakpoint.c (bpfinishpy_out_of_scope):
+       Decref the reslut of PyObject_CallMethod.
+
+2013-05-20  Tom Tromey  <tromey@redhat.com>
+
        * python/py-event.c (gdbpy_initialize_event_generic): Return
        early if PyType_Ready fails.
 
index b52bd7e..f65e026 100644 (file)
@@ -326,8 +326,12 @@ 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))
     {
-      if (!PyObject_CallMethod (py_obj, outofscope_func, NULL))
-          gdbpy_print_stack ();
+      PyObject *meth_result;
+
+      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);