gdb/python: Make convert_values_to_python return gdbpy_ref<>

Make convert_values_to_python return a gdbpy_ref<> directly rather
than building a gdbpy_ref<>, releasing it, and then having a new
gdbpy_ref<> created to hold the result.

I also added a header comment to convert_values_to_python.

gdb/ChangeLog:

	* python/py-function.c (convert_values_to_python): Return
	gdbpy_ref<>. Add header comment.
	(fnpy_call): Adjust.
This commit is contained in:
Andrew Burgess 2018-09-10 12:05:22 +01:00
parent 50db9ef4c0
commit b352ceb6b4
2 changed files with 12 additions and 3 deletions

View File

@ -1,3 +1,9 @@
2018-10-25 Andrew Burgess <andrew.burgess@embecosm.com>
* python/py-function.c (convert_values_to_python): Return
gdbpy_ref<>. Add header comment.
(fnpy_call): Adjust.
2018-10-25 Andrew Burgess <andrew.burgess@embecosm.com>
* python/py-cmd.c (cmdpy_completer_helper): Return gdbpy_ref<>.

View File

@ -34,7 +34,10 @@ extern PyTypeObject fnpy_object_type
static PyObject *
/* Return a reference to a tuple ARGC elements long. Each element of the
tuple is a PyObject converted from the corresponding element of ARGV. */
static gdbpy_ref<>
convert_values_to_python (int argc, struct value **argv)
{
int i;
@ -50,7 +53,7 @@ convert_values_to_python (int argc, struct value **argv)
return NULL;
PyTuple_SetItem (result.get (), i, elt.release ());
}
return result.release ();
return result;
}
/* Call a Python function object's invoke method. */
@ -64,7 +67,7 @@ fnpy_call (struct gdbarch *gdbarch, const struct language_defn *language,
gdbpy_enter enter_py (gdbarch, language);
struct value *value;
gdbpy_ref<> result;
gdbpy_ref<> args (convert_values_to_python (argc, argv));
gdbpy_ref<> args = convert_values_to_python (argc, argv);
/* convert_values_to_python can return NULL on error. If we
encounter this, do not call the function, but allow the Python ->