diff options
author | Tom Tromey <tromey@redhat.com> | 2012-08-15 14:22:02 +0000 |
---|---|---|
committer | Tom Tromey <tromey@redhat.com> | 2012-08-15 14:22:02 +0000 |
commit | db6573d6646f950b5a758fd68d180de8ae1e8981 (patch) | |
tree | 5c1765409a97237e924cd9f3a0dbaff697f631de /gdb/python/py-exitedevent.c | |
parent | a036ba48efc7145d0cd2de136be0443b65f672d2 (diff) | |
download | gdb-db6573d6646f950b5a758fd68d180de8ae1e8981.zip gdb-db6573d6646f950b5a758fd68d180de8ae1e8981.tar.gz gdb-db6573d6646f950b5a758fd68d180de8ae1e8981.tar.bz2 |
PR python/14387:
* python/py-bpevent.c (create_breakpoint_event_object): Update
comment.
* python/py-event.c (evpy_add_attribute): Update comment.
* python/py-exitedevent.c (create_exited_event_object): Fix
reference counting and error handling.
* python/py-newobjfileevent.c (create_new_objfile_event_object):
Fix reference counting.
* python/py-signalevent.c (create_signal_event_object): Fix
reference counting and error handling.
* python/py-stopevent.c (emit_stop_event): Fix reference
counting.
* python/py-threadevent.c (get_event_thread): Return a
borrowed reference.
* python/py-type.c (convert_field): Fix reference counting.
Diffstat (limited to 'gdb/python/py-exitedevent.c')
-rw-r--r-- | gdb/python/py-exitedevent.c | 29 |
1 files changed, 20 insertions, 9 deletions
diff --git a/gdb/python/py-exitedevent.c b/gdb/python/py-exitedevent.c index 272fd30..d062f5f 100644 --- a/gdb/python/py-exitedevent.c +++ b/gdb/python/py-exitedevent.c @@ -25,30 +25,41 @@ static PyObject * create_exited_event_object (const LONGEST *exit_code, struct inferior *inf) { PyObject *exited_event; - PyObject *inf_obj; + PyObject *inf_obj = NULL; exited_event = create_event_object (&exited_event_object_type); if (!exited_event) goto fail; - if (exit_code - && evpy_add_attribute (exited_event, - "exit_code", - PyLong_FromLongLong (*exit_code)) < 0) - goto fail; + if (exit_code) + { + PyObject *exit_code_obj = PyLong_FromLongLong (*exit_code); + int failed; + + if (exit_code_obj == NULL) + goto fail; + + failed = evpy_add_attribute (exited_event, "exit_code", + exit_code_obj) < 0; + Py_DECREF (exit_code_obj); + if (failed) + goto fail; + } inf_obj = inferior_to_inferior_object (inf); if (!inf_obj || evpy_add_attribute (exited_event, "inferior", inf_obj) < 0) goto fail; + Py_DECREF (inf_obj); return exited_event; - fail: - Py_XDECREF (exited_event); - return NULL; + fail: + Py_XDECREF (inf_obj); + Py_XDECREF (exited_event); + return NULL; } /* Callback that is used when an exit event occurs. This function |