Return gdbpy_ref<> from gdbpy_call_method

This changes gdbpy_call_method to return a gdbpy_ref<>.  This is
slightly safer because it makes it simpler to correctly handle
reference counts.

Reviewed-By: Tom de Vries <tdevries@suse.de>
This commit is contained in:
Tom Tromey
2024-06-11 14:10:08 -06:00
parent 54904469f7
commit 7c03e522d4
6 changed files with 29 additions and 29 deletions

View File

@@ -59,7 +59,7 @@ extract_sym (PyObject *obj, gdb::unique_xmalloc_ptr<char> *name,
struct symbol **sym, const struct block **sym_block,
const struct language_defn **language)
{
gdbpy_ref<> result (gdbpy_call_method (obj, "symbol"));
gdbpy_ref<> result = gdbpy_call_method (obj, "symbol");
if (result == NULL)
return EXT_LANG_BT_ERROR;
@@ -130,7 +130,7 @@ extract_value (PyObject *obj, struct value **value)
{
if (PyObject_HasAttrString (obj, "value"))
{
gdbpy_ref<> vresult (gdbpy_call_method (obj, "value"));
gdbpy_ref<> vresult = gdbpy_call_method (obj, "value");
if (vresult == NULL)
return EXT_LANG_BT_ERROR;
@@ -264,7 +264,7 @@ get_py_iter_from_func (PyObject *filter, const char *func)
{
if (PyObject_HasAttrString (filter, func))
{
gdbpy_ref<> result (gdbpy_call_method (filter, func));
gdbpy_ref<> result = gdbpy_call_method (filter, func);
if (result != NULL)
{
@@ -790,7 +790,7 @@ py_print_frame (PyObject *filter, frame_filter_flags flags,
/* Get the underlying frame. This is needed to determine GDB
architecture, and also, in the cases of frame variables/arguments to
read them if they returned filter object requires us to do so. */
gdbpy_ref<> py_inf_frame (gdbpy_call_method (filter, "inferior_frame"));
gdbpy_ref<> py_inf_frame = gdbpy_call_method (filter, "inferior_frame");
if (py_inf_frame == NULL)
return EXT_LANG_BT_ERROR;
@@ -830,7 +830,7 @@ py_print_frame (PyObject *filter, frame_filter_flags flags,
address printing. */
if (PyObject_HasAttrString (filter, "address"))
{
gdbpy_ref<> paddr (gdbpy_call_method (filter, "address"));
gdbpy_ref<> paddr = gdbpy_call_method (filter, "address");
if (paddr == NULL)
return EXT_LANG_BT_ERROR;
@@ -905,7 +905,7 @@ py_print_frame (PyObject *filter, frame_filter_flags flags,
/* Print frame function name. */
if (PyObject_HasAttrString (filter, "function"))
{
gdbpy_ref<> py_func (gdbpy_call_method (filter, "function"));
gdbpy_ref<> py_func = gdbpy_call_method (filter, "function");
const char *function = NULL;
if (py_func == NULL)
@@ -969,7 +969,7 @@ py_print_frame (PyObject *filter, frame_filter_flags flags,
if (PyObject_HasAttrString (filter, "filename"))
{
gdbpy_ref<> py_fn (gdbpy_call_method (filter, "filename"));
gdbpy_ref<> py_fn = gdbpy_call_method (filter, "filename");
if (py_fn == NULL)
return EXT_LANG_BT_ERROR;
@@ -993,7 +993,7 @@ py_print_frame (PyObject *filter, frame_filter_flags flags,
if (PyObject_HasAttrString (filter, "line"))
{
gdbpy_ref<> py_line (gdbpy_call_method (filter, "line"));
gdbpy_ref<> py_line = gdbpy_call_method (filter, "line");
int line;
if (py_line == NULL)