X-Git-Url: http://drtracing.org/?a=blobdiff_plain;f=gdb%2Fpython%2Fpy-bpevent.c;h=03863e4c9a2cf97bcf9291e8972e61aae28b303f;hb=e99b03dcf42606425eab8bd12eadb8aa4007f35a;hp=93a36a143680732cb04e5addc8a80f10704d4f2a;hpb=ecd75fc8eed3bde86036141228074a20e55dcfc9;p=deliverable%2Fbinutils-gdb.git diff --git a/gdb/python/py-bpevent.c b/gdb/python/py-bpevent.c index 93a36a1436..03863e4c9a 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-2014 Free Software Foundation, Inc. + Copyright (C) 2009-2018 Free Software Foundation, Inc. This file is part of GDB. @@ -19,41 +19,28 @@ #include "defs.h" #include "py-stopevent.h" - -static PyTypeObject breakpoint_event_object_type - CPYCHECKER_TYPE_OBJECT_FOR_TYPEDEF ("event_object"); +#include "py-ref.h" /* Create and initialize a BreakpointEvent object. This acquires new references to BREAKPOINT_LIST and FIRST_BP. */ -PyObject * +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", first_bp) < 0) - goto fail; - if (evpy_add_attribute (breakpoint_event_obj, + return NULL; + if (evpy_add_attribute (breakpoint_event_obj.get (), "breakpoints", breakpoint_list) < 0) - goto fail; + 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);