From 9b08f22510e19e1f5d8d3849a4ffdd6090c9bfea Mon Sep 17 00:00:00 2001 From: Tom Tromey Date: Mon, 20 May 2013 20:16:57 +0000 Subject: [PATCH] * python/py-event.h (evpy_emit_event): Use CPYCHECKER_STEALS_REFERENCE_TO_ARG. * python/python-internal.h (CPYCHECKER_STEALS_REFERENCE_TO_ARG): New macro. --- gdb/ChangeLog | 7 +++++++ gdb/python/py-event.h | 3 ++- gdb/python/python-internal.h | 7 +++++++ 3 files changed, 16 insertions(+), 1 deletion(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 8b417da..49c10bc 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,5 +1,12 @@ 2013-05-20 Tom Tromey + * python/py-event.h (evpy_emit_event): Use + CPYCHECKER_STEALS_REFERENCE_TO_ARG. + * python/python-internal.h (CPYCHECKER_STEALS_REFERENCE_TO_ARG): + New macro. + +2013-05-20 Tom Tromey + * py-evtregistry.c (create_event_object): Decref eventregistry_object if PyList_New fails. diff --git a/gdb/python/py-event.h b/gdb/python/py-event.h index 970595b..1db8bd2 100644 --- a/gdb/python/py-event.h +++ b/gdb/python/py-event.h @@ -106,7 +106,8 @@ extern int emit_continue_event (ptid_t ptid); extern int emit_exited_event (const LONGEST *exit_code, struct inferior *inf); extern int evpy_emit_event (PyObject *event, - eventregistry_object *registry); + eventregistry_object *registry) + CPYCHECKER_STEALS_REFERENCE_TO_ARG (1); extern PyObject *create_event_object (PyTypeObject *py_type); extern PyObject *create_thread_event_object (PyTypeObject *py_type); diff --git a/gdb/python/python-internal.h b/gdb/python/python-internal.h index 8552c87..2792562 100644 --- a/gdb/python/python-internal.h +++ b/gdb/python/python-internal.h @@ -40,6 +40,13 @@ #define CPYCHECKER_TYPE_OBJECT_FOR_TYPEDEF(ARG) #endif +#ifdef WITH_CPYCHECKER_STEALS_REFERENCE_TO_ARG_ATTRIBUTE +#define CPYCHECKER_STEALS_REFERENCE_TO_ARG(n) \ + __attribute__ ((cpychecker_steals_reference_to_arg (n))) +#else +#define CPYCHECKER_STEALS_REFERENCE_TO_ARG(n) +#endif + #include /* Python 2.4 doesn't include stdint.h soon enough to get {u,}intptr_t -- 2.7.4