From ff3724f5123b9d9c52a07f7c1a5d85852e666c48 Mon Sep 17 00:00:00 2001 From: Tom Tromey Date: Sun, 6 Nov 2016 21:49:34 -0700 Subject: Use gdbpy_ref in python.c This changes a couple of functions in python.c to use gdbpy_ref. 2017-01-10 Tom Tromey * python/python.c (gdbpy_progspaces, gdbpy_objfiles): Use gdbpy_ref. --- gdb/python/python.c | 29 +++++++++++------------------ 1 file changed, 11 insertions(+), 18 deletions(-) (limited to 'gdb/python/python.c') diff --git a/gdb/python/python.c b/gdb/python/python.c index c6e410a..a2f3624 100644 --- a/gdb/python/python.c +++ b/gdb/python/python.c @@ -99,6 +99,7 @@ const struct extension_language_defn extension_language_python = #include "gdbthread.h" #include "interps.h" #include "event-top.h" +#include "py-ref.h" /* True if Python has been successfully initialized, false otherwise. */ @@ -1266,24 +1267,20 @@ static PyObject * gdbpy_progspaces (PyObject *unused1, PyObject *unused2) { struct program_space *ps; - PyObject *list; - list = PyList_New (0); - if (!list) + gdbpy_ref list (PyList_New (0)); + if (list == NULL) return NULL; ALL_PSPACES (ps) { PyObject *item = pspace_to_pspace_object (ps); - if (!item || PyList_Append (list, item) == -1) - { - Py_DECREF (list); - return NULL; - } + if (!item || PyList_Append (list.get (), item) == -1) + return NULL; } - return list; + return list.release (); } @@ -1366,24 +1363,20 @@ static PyObject * gdbpy_objfiles (PyObject *unused1, PyObject *unused2) { struct objfile *objf; - PyObject *list; - list = PyList_New (0); - if (!list) + gdbpy_ref list (PyList_New (0)); + if (list == NULL) return NULL; ALL_OBJFILES (objf) { PyObject *item = objfile_to_objfile_object (objf); - if (!item || PyList_Append (list, item) == -1) - { - Py_DECREF (list); - return NULL; - } + if (!item || PyList_Append (list.get (), item) == -1) + return NULL; } - return list; + return list.release (); } /* Compute the list of active python type printers and store them in -- cgit v1.1