Use gdbpy_ref in py-param.c

This changes py-param.c to use gdbpy_ref in a couple more spots.

2017-01-10  Tom Tromey  <tom@tromey.com>

	* python/py-param.c (get_doc_string, compute_enum_values): Use
	gdbpy_ref.
This commit is contained in:
Tom Tromey 2016-11-20 10:34:34 -07:00
parent 9205649a38
commit 97d83487d5
2 changed files with 13 additions and 10 deletions

View File

@ -1,3 +1,8 @@
2017-01-10 Tom Tromey <tom@tromey.com>
* python/py-param.c (get_doc_string, compute_enum_values): Use
gdbpy_ref.
2017-01-10 Tom Tromey <tom@tromey.com>
* python/py-inferior.c (find_thread_object, build_inferior_list):

View File

@ -307,15 +307,14 @@ get_doc_string (PyObject *object, PyObject *attr)
if (PyObject_HasAttr (object, attr))
{
PyObject *ds_obj = PyObject_GetAttr (object, attr);
gdbpy_ref ds_obj (PyObject_GetAttr (object, attr));
if (ds_obj && gdbpy_is_string (ds_obj))
if (ds_obj != NULL && gdbpy_is_string (ds_obj.get ()))
{
result = python_string_to_host_string (ds_obj);
result = python_string_to_host_string (ds_obj.get ());
if (result == NULL)
gdbpy_print_stack ();
}
Py_XDECREF (ds_obj);
}
if (! result)
result.reset (xstrdup (_("This command is not documented.")));
@ -587,23 +586,22 @@ compute_enum_values (parmpy_object *self, PyObject *enum_values)
for (i = 0; i < size; ++i)
{
PyObject *item = PySequence_GetItem (enum_values, i);
gdbpy_ref item (PySequence_GetItem (enum_values, i));
if (! item)
if (item == NULL)
{
do_cleanups (back_to);
return 0;
}
if (! gdbpy_is_string (item))
if (! gdbpy_is_string (item.get ()))
{
Py_DECREF (item);
do_cleanups (back_to);
PyErr_SetString (PyExc_RuntimeError,
_("The enumeration item not a string."));
return 0;
}
self->enumeration[i] = python_string_to_host_string (item).release ();
Py_DECREF (item);
self->enumeration[i]
= python_string_to_host_string (item.get ()).release ();
if (self->enumeration[i] == NULL)
{
do_cleanups (back_to);