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.
This commit is contained in:
Tom Tromey 2016-11-06 21:10:18 -07:00
parent 3bb4338431
commit d1b3de2e43
2 changed files with 9 additions and 8 deletions

View file

@ -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 ();
}