From b352ceb6b4fc9f026944d307704076d1e6894de9 Mon Sep 17 00:00:00 2001 From: Andrew Burgess Date: Mon, 10 Sep 2018 12:05:22 +0100 Subject: [PATCH] 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. --- gdb/ChangeLog | 6 ++++++ gdb/python/py-function.c | 9 ++++++--- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 6ab2ec8021..61dc039d4f 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,9 @@ +2018-10-25 Andrew Burgess + + * python/py-function.c (convert_values_to_python): Return + gdbpy_ref<>. Add header comment. + (fnpy_call): Adjust. + 2018-10-25 Andrew Burgess * python/py-cmd.c (cmdpy_completer_helper): Return gdbpy_ref<>. diff --git a/gdb/python/py-function.c b/gdb/python/py-function.c index 1900f0ff0c..cf5e68a054 100644 --- a/gdb/python/py-function.c +++ b/gdb/python/py-function.c @@ -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 -> -- 2.34.1