binutils-gdb/gdb/python
Jan Vrany 974c8ea576 gdb/python: preserve identity for gdb.Type objects
This commit changes type_to_type_object() so that each it is called
with a particular struct type * it returns the very same gdb.Type
object.

This is done in the same way as for gdb.Symtab objects in earlier commit
("gdb/python: preserve identity for gdb.Symtab objects") except that
types may be either objfile-owned or arch-owned.

Prior this commit, arch-owned objects we not put into any list (like
objfile-owned ones) so they could not be easily looked up. This commit
changes the code so arch-owned list are put into per-architecture list
which is then used (solely) for looking up arch-owned gdb.Type.

Another complication comes from the fact that when objfile is about to
be freed, associated gdb.Type instances are not merely invalidated
(like it is done with gdb.Symtab or gdb.Symbol objects) but instead the
type is copied and the copy is arch-owned. So we need two different
"deleters", one for objfile-owned types that copies the type (as before)
and then insert the object to per-architecture list and another one
for arch-owned types.

Approved-By: Tom Tromey <tom@tromey.com>
2025-03-19 21:12:53 +00:00
..
lib/gdb [gdb/python] Fix typos in lib 2025-03-06 23:21:54 +01:00
py-all-events.def Add gdb.events.tui_enabled 2024-11-01 11:06:47 -06:00
py-arch.c gdb/python: add void_type () method to gdb.Architecture object 2025-02-04 13:56:49 +00:00
py-auto-load.c [gdb/contrib] Add two rules in common-misspellings.txt 2024-11-23 12:20:34 +01:00
py-block.c gdb/python: add subblocks property to gdb.Block 2025-02-04 13:56:49 +00:00
py-bpevent.c
py-breakpoint.c Bploc should try to return full path 2025-03-03 18:53:12 +01:00
py-cmd.c [gdb/python] Eliminate GDB_PY_SET_HANDLE_EXCEPTION 2024-09-24 13:06:32 +02:00
py-color.c Add an option with a color type. 2025-01-12 13:30:43 -07:00
py-color.h Fix check-include-guards.py 2025-03-10 09:18:40 -06:00
py-connection.c Use gdb map in py-connection.c 2025-03-11 08:40:06 -06:00
py-continueevent.c
py-dap.c
py-disasm.c gdb/python: remove unused argument from builtin_disassemble 2025-03-15 17:12:12 +00:00
py-event-types.def Add gdb.events.tui_enabled 2024-11-01 11:06:47 -06:00
py-event.c Automatically add types to Python modules 2024-09-23 13:44:59 -06:00
py-event.h Run check-include-guards.py 2024-12-18 10:00:44 -07:00
py-events.h Run check-include-guards.py 2024-12-18 10:00:44 -07:00
py-evtregistry.c Automatically add types to Python modules 2024-09-23 13:44:59 -06:00
py-evts.c
py-exitedevent.c
py-finishbreakpoint.c [gdb/python] Eliminate GDB_PY_SET_HANDLE_EXCEPTION 2024-09-24 13:06:32 +02:00
py-frame.c [gdb/python] Eliminate GDB_PY_HANDLE_EXCEPTION 2024-09-24 13:06:32 +02:00
py-framefilter.c [gdb/python] Fix typos 2025-03-06 23:21:54 +01:00
py-function.c Call gdbpy_fix_doc_string_indentation for function help 2024-11-11 07:44:27 -07:00
py-gdb-readline.c [gdb/python] Eliminate GDB_PY_HANDLE_EXCEPTION 2024-09-24 13:06:32 +02:00
py-inferior.c gdb: split up construct_inferior_arguments 2025-03-18 13:03:07 +00:00
py-infevents.c
py-infthread.c [gdb/python] Eliminate GDB_PY_HANDLE_EXCEPTION 2024-09-24 13:06:32 +02:00
py-instruction.c Automatically add types to Python modules 2024-09-23 13:44:59 -06:00
py-instruction.h Run check-include-guards.py 2024-12-18 10:00:44 -07:00
py-lazy-string.c [gdb/python] Fix typos 2025-03-06 23:21:54 +01:00
py-linetable.c [gdb/python] Eliminate GDB_PY_HANDLE_EXCEPTION 2024-09-24 13:06:32 +02:00
py-membuf.c Automatically add types to Python modules 2024-09-23 13:44:59 -06:00
py-mi.c Require a command argument in gdb.execute_mi 2024-10-18 11:50:27 -06:00
py-micmd.c gdb/python: missing PyObject_IsTrue error check in micmdpy_set_installed 2024-11-14 19:34:44 +00:00
py-newobjfileevent.c
py-objfile.c [gdb/python] Eliminate GDB_PY_HANDLE_EXCEPTION 2024-09-24 13:06:32 +02:00
py-param.c Add an option with a color type. 2025-01-12 13:30:43 -07:00
py-prettyprint.c Automatically add types to Python modules 2024-09-23 13:44:59 -06:00
py-progspace.c [gdb/python] Fix typos 2025-03-06 23:21:54 +01:00
py-record-btrace.c btrace: Add support for interrupt events. 2024-09-24 14:22:28 +02:00
py-record-btrace.h Run check-include-guards.py 2024-12-18 10:00:44 -07:00
py-record-full.c
py-record-full.h Run check-include-guards.py 2024-12-18 10:00:44 -07:00
py-record.c [gdb/python] Eliminate GDB_PY_HANDLE_EXCEPTION 2024-09-24 13:06:32 +02:00
py-record.h Run check-include-guards.py 2024-12-18 10:00:44 -07:00
py-ref.h Run check-include-guards.py 2024-12-18 10:00:44 -07:00
py-registers.c Use gdb unordered set and map in Python layer 2025-03-18 05:32:04 -06:00
py-signalevent.c
py-stopevent.c [gdb/python] Eliminate GDB_PY_HANDLE_EXCEPTION 2024-09-24 13:06:32 +02:00
py-stopevent.h Run check-include-guards.py 2024-12-18 10:00:44 -07:00
py-symbol.c gdb/python: do not hold on gdb.Symtab object from gdb.Symtab_and_line 2025-03-19 21:12:53 +00:00
py-symtab.c gdb/python: do not hold on gdb.Symtab object from gdb.Symtab_and_line 2025-03-19 21:12:53 +00:00
py-threadevent.c
py-tui.c Add gdb.events.tui_enabled 2024-11-01 11:06:47 -06:00
py-type.c gdb/python: preserve identity for gdb.Type objects 2025-03-19 21:12:53 +00:00
py-uiout.h Add line-number styling 2024-09-30 13:23:35 -06:00
py-unwind.c gdb: Migrate frame unwinders to use C++ classes 2025-01-17 11:49:16 -03:00
py-utils.c [gdb/python] Make sure python sys.exit makes gdb exit 2024-09-25 19:29:57 +02:00
py-value.c Reject non-string types in gdb.Value.lazy_string 2024-12-09 14:17:21 -07:00
py-varobj.c
py-xmethods.c
python-config.py
python-internal.h Run check-include-guards.py 2024-12-18 10:00:44 -07:00
python.c gdb/python: new styling argument to gdb.execute 2025-03-19 14:31:53 +00:00
python.h Run check-include-guards.py 2024-12-18 10:00:44 -07:00