diff options
| author | Tom Tromey <tromey@adacore.com> | 2026-02-20 12:47:51 -0700 |
|---|---|---|
| committer | Tom Tromey <tromey@adacore.com> | 2026-02-23 05:29:11 -0700 |
| commit | 9d71572cbaf558051255c5f8b8fa577e40387e64 (patch) | |
| tree | 1cee38f4c9116f8c18f8864121bece546e5bb14a /gdb/python | |
| parent | 0ab23e2707ad6099bb21d52b32dd9a096fe61f8c (diff) | |
| download | binutils-9d71572cbaf558051255c5f8b8fa577e40387e64.tar.gz binutils-9d71572cbaf558051255c5f8b8fa577e40387e64.tar.bz2 binutils-9d71572cbaf558051255c5f8b8fa577e40387e64.zip | |
Return gdbpy_ref<> from symtab_to_symtab_object
This changes symtab_to_symtab_object 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')
| -rw-r--r-- | gdb/python/py-symbol.c | 2 | ||||
| -rw-r--r-- | gdb/python/py-symtab.c | 8 | ||||
| -rw-r--r-- | gdb/python/python-internal.h | 2 |
3 files changed, 6 insertions, 6 deletions
diff --git a/gdb/python/py-symbol.c b/gdb/python/py-symbol.c index d51f4823315..492c386b7ee 100644 --- a/gdb/python/py-symbol.c +++ b/gdb/python/py-symbol.c @@ -86,7 +86,7 @@ sympy_get_symtab (PyObject *self, void *closure) if (!symbol->is_objfile_owned ()) Py_RETURN_NONE; - return symtab_to_symtab_object (symbol->symtab ()); + return symtab_to_symtab_object (symbol->symtab ()).release (); } static PyObject * diff --git a/gdb/python/py-symtab.c b/gdb/python/py-symtab.c index 820542932ba..3b05721e616 100644 --- a/gdb/python/py-symtab.c +++ b/gdb/python/py-symtab.c @@ -299,7 +299,7 @@ salpy_get_symtab (PyObject *self, void *closure) if (sal->symtab == nullptr) Py_RETURN_NONE; else - return symtab_to_symtab_object (sal->symtab); + return symtab_to_symtab_object (sal->symtab).release (); } /* Implementation of gdb.Symtab_and_line.is_valid (self) -> Boolean. @@ -366,7 +366,7 @@ set_symtab (symtab_object *obj, struct symtab *symtab) /* Create a new symbol table (gdb.Symtab) object that encapsulates the symtab structure from GDB. */ -PyObject * +gdbpy_ref<> symtab_to_symtab_object (struct symtab *symtab) { symtab_object *symtab_obj; @@ -378,14 +378,14 @@ symtab_to_symtab_object (struct symtab *symtab) symtab_obj = stpy_registry.lookup (symtab->compunit ()->objfile (), symtab); if (symtab_obj != nullptr) - return (PyObject*)symtab_obj; + return gdbpy_ref<> (symtab_obj); } symtab_obj = PyObject_New (symtab_object, &symtab_object_type); if (symtab_obj) set_symtab (symtab_obj, symtab); - return (PyObject *) symtab_obj; + return gdbpy_ref<> (symtab_obj); } /* Create a new symtab and line (gdb.Symtab_and_line) object diff --git a/gdb/python/python-internal.h b/gdb/python/python-internal.h index 979bf2498da..8d101e8afb6 100644 --- a/gdb/python/python-internal.h +++ b/gdb/python/python-internal.h @@ -496,7 +496,7 @@ PyObject *gdbpy_register_tui_window (PyObject *self, PyObject *args, PyObject *kw); gdbpy_ref<> symtab_and_line_to_sal_object (struct symtab_and_line sal); -PyObject *symtab_to_symtab_object (struct symtab *symtab); +gdbpy_ref<> symtab_to_symtab_object (struct symtab *symtab); gdbpy_ref<> symbol_to_symbol_object (struct symbol *sym); PyObject *block_to_block_object (const struct block *block, struct objfile *objfile); |
