aboutsummaryrefslogtreecommitdiff
path: root/gdb/python/py-symbol.c
diff options
context:
space:
mode:
authorTom Tromey <tromey@adacore.com>2026-02-20 13:34:45 -0700
committerTom Tromey <tromey@adacore.com>2026-02-23 05:29:12 -0700
commit7fc4f93e286e4222e03e16491459fdaeeee210be (patch)
tree64d614d07cb7c18a0241e6dc19fef6818c526518 /gdb/python/py-symbol.c
parenta93acde059bbdfc038fff232c834a58b3835bdcf (diff)
downloadbinutils-7fc4f93e286e4222e03e16491459fdaeeee210be.tar.gz
binutils-7fc4f93e286e4222e03e16491459fdaeeee210be.tar.bz2
binutils-7fc4f93e286e4222e03e16491459fdaeeee210be.zip
Return gdbpy_ref<> from gdbpy_registry::lookup
This changes gdbpy_registry::lookup to return a gdbpy_ref<>, using the type system to convey that a new reference is always returned. Approved-By: Simon Marchi <simon.marchi@efficios.com>
Diffstat (limited to 'gdb/python/py-symbol.c')
-rw-r--r--gdb/python/py-symbol.c13
1 files changed, 6 insertions, 7 deletions
diff --git a/gdb/python/py-symbol.c b/gdb/python/py-symbol.c
index 7b6164fb20d..e8ff2dfe28a 100644
--- a/gdb/python/py-symbol.c
+++ b/gdb/python/py-symbol.c
@@ -339,18 +339,17 @@ set_symbol (symbol_object *obj, struct symbol *symbol)
gdbpy_ref<>
symbol_to_symbol_object (struct symbol *sym)
{
- symbol_object *sym_obj;
-
/* Look if there's already a gdb.Symbol object for given SYMBOL
and if so, return it. */
+ gdbpy_ref<> result;
if (sym->is_objfile_owned ())
- sym_obj = sympy_registry.lookup (sym->objfile (), sym);
+ result = sympy_registry.lookup (sym->objfile (), sym);
else
- sym_obj = sympy_registry.lookup (sym->arch (), sym);
- if (sym_obj != nullptr)
- return gdbpy_ref<> (sym_obj);
+ result = sympy_registry.lookup (sym->arch (), sym);
+ if (result != nullptr)
+ return result;
- sym_obj = PyObject_New (symbol_object, &symbol_object_type);
+ symbol_object *sym_obj = PyObject_New (symbol_object, &symbol_object_type);
if (sym_obj)
set_symbol (sym_obj, sym);