This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
[RFA 04/14] Use gdbpy_reference in gdbpy_string_to_argv
- From: Tom Tromey <tom at tromey dot com>
- To: gdb-patches at sourceware dot org
- Cc: Tom Tromey <tom at tromey dot com>
- Date: Sun, 6 Nov 2016 22:47:26 -0700
- Subject: [RFA 04/14] Use gdbpy_reference in gdbpy_string_to_argv
- Authentication-results: sourceware.org; auth=none
- References: <1478497656-11832-1-git-send-email-tom@tromey.com>
This chanes gdbpy_string_to_argv to use gdbpy_reference.
2016-11-06 Tom Tromey <tom@tromey.com>
* python/py-cmd.c (gdbpy_string_to_argv): Use gdbpy_reference.
---
gdb/ChangeLog | 4 ++++
gdb/python/py-cmd.c | 13 +++++--------
2 files changed, 9 insertions(+), 8 deletions(-)
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 4475a66..1a0a21f 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,5 +1,9 @@
2016-11-06 Tom Tromey <tom@tromey.com>
+ * python/py-cmd.c (gdbpy_string_to_argv): Use gdbpy_reference.
+
+2016-11-06 Tom Tromey <tom@tromey.com>
+
* python/py-type.c (convert_field, make_fielditem, typy_fields)
(typy_range): Use gdbpy_reference.
diff --git a/gdb/python/py-cmd.c b/gdb/python/py-cmd.c
index af6c5cf..80216e3 100644
--- a/gdb/python/py-cmd.c
+++ b/gdb/python/py-cmd.c
@@ -27,6 +27,7 @@
#include "cli/cli-decode.h"
#include "completer.h"
#include "language.h"
+#include "py-ref.h"
/* Struct representing built-in completion types. */
struct cmdpy_completer
@@ -785,13 +786,12 @@ PyTypeObject cmdpy_object_type =
PyObject *
gdbpy_string_to_argv (PyObject *self, PyObject *args)
{
- PyObject *py_argv;
const char *input;
if (!PyArg_ParseTuple (args, "s", &input))
return NULL;
- py_argv = PyList_New (0);
+ gdbpy_reference py_argv (PyList_New (0));
if (py_argv == NULL)
return NULL;
@@ -806,21 +806,18 @@ gdbpy_string_to_argv (PyObject *self, PyObject *args)
for (i = 0; c_argv[i] != NULL; ++i)
{
- PyObject *argp = PyString_FromString (c_argv[i]);
+ gdbpy_reference argp (PyString_FromString (c_argv[i]));
if (argp == NULL
- || PyList_Append (py_argv, argp) < 0)
+ || PyList_Append (py_argv.get (), argp.get ()) < 0)
{
- Py_XDECREF (argp);
- Py_DECREF (py_argv);
freeargv (c_argv);
return NULL;
}
- Py_DECREF (argp);
}
freeargv (c_argv);
}
- return py_argv;
+ return py_argv.release ();
}
--
2.7.4