X-Git-Url: http://drtracing.org/?a=blobdiff_plain;f=gdb%2Fpython%2Fpy-bpevent.c;h=6bdbd8cb1b905e77107384e5568b70170dcf44f5;hb=7c711119166fc1c60c756059f39c6703d57eedbf;hp=c7f79654a16d5c66cab856c147a6e68761fcf8b8;hpb=c17a9e46882cb057d7e1d150ac9974425dc55e03;p=deliverable%2Fbinutils-gdb.git diff --git a/gdb/python/py-bpevent.c b/gdb/python/py-bpevent.c index c7f79654a1..6bdbd8cb1b 100644 --- a/gdb/python/py-bpevent.c +++ b/gdb/python/py-bpevent.c @@ -1,6 +1,6 @@ /* Python interface to inferior breakpoint stop events. - Copyright (C) 2009, 2010, 2011 Free Software Foundation, Inc. + Copyright (C) 2009-2019 Free Software Foundation, Inc. This file is part of GDB. @@ -17,36 +17,30 @@ You should have received a copy of the GNU General Public License along with this program. If not, see . */ +#include "defs.h" #include "py-stopevent.h" +#include "py-ref.h" -static PyTypeObject breakpoint_event_object_type; +/* Create and initialize a BreakpointEvent object. This acquires new + references to BREAKPOINT_LIST and FIRST_BP. */ -/* Create and initialize a BreakpointEvent object. */ - -PyObject * -create_breakpoint_event_object (PyObject *breakpoint) +gdbpy_ref<> +create_breakpoint_event_object (PyObject *breakpoint_list, PyObject *first_bp) { - PyObject *breakpoint_event_obj = - create_stop_event_object (&breakpoint_event_object_type); + gdbpy_ref<> breakpoint_event_obj + = create_stop_event_object (&breakpoint_event_object_type); - if (!breakpoint_event_obj) - goto fail; + if (breakpoint_event_obj == NULL) + return NULL; - if (evpy_add_attribute (breakpoint_event_obj, + if (evpy_add_attribute (breakpoint_event_obj.get (), "breakpoint", - breakpoint) < 0) - goto fail; + first_bp) < 0) + return NULL; + if (evpy_add_attribute (breakpoint_event_obj.get (), + "breakpoints", + breakpoint_list) < 0) + return NULL; return breakpoint_event_obj; - - fail: - Py_XDECREF (breakpoint_event_obj); - return NULL; } - -GDBPY_NEW_EVENT_TYPE (breakpoint, - "gdb.BreakpointEvent", - "BreakpointEvent", - "GDB breakpoint stop event object", - stop_event_object_type, - static);