This is the mail archive of the
gdb-cvs@sourceware.org
mailing list for the GDB project.
[binutils-gdb] Use gdbpy_ref in gdbpy_string_to_argv
- From: Tom Tromey <tromey at sourceware dot org>
- To: gdb-cvs at sourceware dot org
- Date: 11 Jan 2017 05:18:04 -0000
- Subject: [binutils-gdb] Use gdbpy_ref in gdbpy_string_to_argv
https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=d1b3de2e43380a0c51772a40315cd2268573d985
commit d1b3de2e43380a0c51772a40315cd2268573d985
Author: Tom Tromey <tom@tromey.com>
Date: Sun Nov 6 21:10:18 2016 -0700
Use gdbpy_ref in gdbpy_string_to_argv
This chanes gdbpy_string_to_argv to use gdbpy_ref.
2017-01-10 Tom Tromey <tom@tromey.com>
* python/py-cmd.c (gdbpy_string_to_argv): Use gdbpy_ref.
Diff:
---
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 1fa7915..1e8ce99 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,5 +1,9 @@
2017-01-10 Tom Tromey <tom@tromey.com>
+ * python/py-cmd.c (gdbpy_string_to_argv): Use gdbpy_ref.
+
+2017-01-10 Tom Tromey <tom@tromey.com>
+
* python/py-type.c (convert_field, make_fielditem, typy_fields)
(typy_range): Use gdbpy_ref.
diff --git a/gdb/python/py-cmd.c b/gdb/python/py-cmd.c
index 130466d..e2879b7 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
@@ -784,13 +785,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_ref py_argv (PyList_New (0));
if (py_argv == NULL)
return NULL;
@@ -805,21 +805,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_ref 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 ();
}