diff options
Diffstat (limited to 'gdb/python/py-evtregistry.c')
-rw-r--r-- | gdb/python/py-evtregistry.c | 17 |
1 files changed, 7 insertions, 10 deletions
diff --git a/gdb/python/py-evtregistry.c b/gdb/python/py-evtregistry.c index 81bf927..4d4045b 100644 --- a/gdb/python/py-evtregistry.c +++ b/gdb/python/py-evtregistry.c @@ -20,6 +20,7 @@ #include "defs.h" #include "command.h" #include "py-events.h" +#include "py-ref.h" events_object gdb_py_events; @@ -79,22 +80,18 @@ evregpy_disconnect (PyObject *self, PyObject *function) eventregistry_object * create_eventregistry_object (void) { - eventregistry_object *eventregistry_obj; + gdbpy_ref<eventregistry_object> + eventregistry_obj (PyObject_New (eventregistry_object, + &eventregistry_object_type)); - eventregistry_obj = PyObject_New (eventregistry_object, - &eventregistry_object_type); - - if (!eventregistry_obj) + if (eventregistry_obj == NULL) return NULL; eventregistry_obj->callbacks = PyList_New (0); if (!eventregistry_obj->callbacks) - { - Py_DECREF (eventregistry_obj); - return NULL; - } + return NULL; - return eventregistry_obj; + return eventregistry_obj.release (); } static void |