* python/py-threadevent.c (get_event_thread): Use
authorTom Tromey <tromey@redhat.com>
Mon, 20 May 2013 20:10:03 +0000 (20:10 +0000)
committerTom Tromey <tromey@redhat.com>
Mon, 20 May 2013 20:10:03 +0000 (20:10 +0000)
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.

gdb/ChangeLog
gdb/python/py-threadevent.c
gdb/python/python-internal.h

index 89504b3..b4fb20c 100644 (file)
@@ -1,5 +1,14 @@
 2013-05-20  Tom Tromey  <tromey@redhat.com>
 
+       * 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.
+
+2013-05-20  Tom Tromey  <tromey@redhat.com>
+
        * python/py-arch.c (arch_object_type): Use
        CPYCHECKER_TYPE_OBJECT_FOR_TYPEDEF.
        * python/py-block.c (block_syms_iterator_object_type):
index 7e13f14..ea9de89 100644 (file)
@@ -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)
 {
index b6a2e76..8552c87 100644 (file)
    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);