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:
parent
50db9ef4c0
commit
b352ceb6b4
2 changed files with 12 additions and 3 deletions
|
@ -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>
|
2018-10-25 Andrew Burgess <andrew.burgess@embecosm.com>
|
||||||
|
|
||||||
* python/py-cmd.c (cmdpy_completer_helper): Return gdbpy_ref<>.
|
* python/py-cmd.c (cmdpy_completer_helper): Return gdbpy_ref<>.
|
||||||
|
|
|
@ -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)
|
convert_values_to_python (int argc, struct value **argv)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
|
@ -50,7 +53,7 @@ convert_values_to_python (int argc, struct value **argv)
|
||||||
return NULL;
|
return NULL;
|
||||||
PyTuple_SetItem (result.get (), i, elt.release ());
|
PyTuple_SetItem (result.get (), i, elt.release ());
|
||||||
}
|
}
|
||||||
return result.release ();
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Call a Python function object's invoke method. */
|
/* 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);
|
gdbpy_enter enter_py (gdbarch, language);
|
||||||
struct value *value;
|
struct value *value;
|
||||||
gdbpy_ref<> result;
|
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
|
/* convert_values_to_python can return NULL on error. If we
|
||||||
encounter this, do not call the function, but allow the Python ->
|
encounter this, do not call the function, but allow the Python ->
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue