aboutsummaryrefslogtreecommitdiff
path: root/gdb/python/py-evtregistry.c
diff options
context:
space:
mode:
Diffstat (limited to 'gdb/python/py-evtregistry.c')
-rw-r--r--gdb/python/py-evtregistry.c17
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