aboutsummaryrefslogtreecommitdiff
path: root/gdb/python
diff options
context:
space:
mode:
authorTom Tromey <tromey@redhat.com>2013-05-20 20:10:03 +0000
committerTom Tromey <tromey@redhat.com>2013-05-20 20:10:03 +0000
commit634c58be55bc36d8b568057263352a64cc7478a5 (patch)
tree7997e3f309e556a7e4d21c99def5973668c6ce84 /gdb/python
parent62eec1a534a27c721360713b21e14fb800e21e36 (diff)
downloadgdb-634c58be55bc36d8b568057263352a64cc7478a5.zip
gdb-634c58be55bc36d8b568057263352a64cc7478a5.tar.gz
gdb-634c58be55bc36d8b568057263352a64cc7478a5.tar.bz2
* python/py-threadevent.c (get_event_thread): Use
CPYCHECKER_RETURNS_BORROWED_REF. * python/python-internal.h (CPYCHECKER_RETURNS_BORROWED_REF): New define. (pspace_to_pspace_object, objfile_to_objfile_object) (find_thread_object): Use it.
Diffstat (limited to 'gdb/python')
-rw-r--r--gdb/python/py-threadevent.c3
-rw-r--r--gdb/python/python-internal.h16
2 files changed, 16 insertions, 3 deletions
diff --git a/gdb/python/py-threadevent.c b/gdb/python/py-threadevent.c
index 7e13f14..ea9de89 100644
--- a/gdb/python/py-threadevent.c
+++ b/gdb/python/py-threadevent.c
@@ -24,6 +24,9 @@
This function returns the currently stopped thread in non-stop mode and
Py_None otherwise. In each case it returns a borrowed reference. */
+static PyObject *get_event_thread (void)
+ CPYCHECKER_RETURNS_BORROWED_REF;
+
static PyObject *
get_event_thread (void)
{
diff --git a/gdb/python/python-internal.h b/gdb/python/python-internal.h
index b6a2e76..8552c87 100644
--- a/gdb/python/python-internal.h
+++ b/gdb/python/python-internal.h
@@ -26,6 +26,13 @@
The checker defines a WITH_ macro for each attribute it
exposes. */
+#ifdef WITH_CPYCHECKER_RETURNS_BORROWED_REF_ATTRIBUTE
+#define CPYCHECKER_RETURNS_BORROWED_REF \
+ __attribute__ ((cpychecker_returns_borrowed_ref))
+#else
+#define CPYCHECKER_RETURNS_BORROWED_REF
+#endif
+
#ifdef WITH_CPYCHECKER_TYPE_OBJECT_FOR_TYPEDEF_ATTRIBUTE
#define CPYCHECKER_TYPE_OBJECT_FOR_TYPEDEF(ARG) \
__attribute__ ((cpychecker_type_object_for_typedef (ARG)))
@@ -269,18 +276,21 @@ PyObject *value_to_value_object (struct value *v);
PyObject *type_to_type_object (struct type *);
PyObject *frame_info_to_frame_object (struct frame_info *frame);
-PyObject *pspace_to_pspace_object (struct program_space *);
+PyObject *pspace_to_pspace_object (struct program_space *)
+ CPYCHECKER_RETURNS_BORROWED_REF;
PyObject *pspy_get_printers (PyObject *, void *);
PyObject *pspy_get_frame_filters (PyObject *, void *);
-PyObject *objfile_to_objfile_object (struct objfile *);
+PyObject *objfile_to_objfile_object (struct objfile *)
+ CPYCHECKER_RETURNS_BORROWED_REF;
PyObject *objfpy_get_printers (PyObject *, void *);
PyObject *objfpy_get_frame_filters (PyObject *, void *);
PyObject *gdbarch_to_arch_object (struct gdbarch *gdbarch);
thread_object *create_thread_object (struct thread_info *tp);
-thread_object *find_thread_object (ptid_t ptid);
+thread_object *find_thread_object (ptid_t ptid)
+ CPYCHECKER_RETURNS_BORROWED_REF;
PyObject *find_inferior_object (int pid);
PyObject *inferior_to_inferior_object (struct inferior *inferior);