Attach partial symtab storage to psymbol_functions
authorTom Tromey <tom@tromey.com>
Sat, 20 Mar 2021 23:23:40 +0000 (17:23 -0600)
committerTom Tromey <tom@tromey.com>
Sat, 20 Mar 2021 23:23:44 +0000 (17:23 -0600)
commit17d66340ebb4528307c6c5d08383859aab785db7
tree8ac73162b98501fb1d60f0961a6487a568095220
parent84685904937577dabf4fb0b458784f853fc648be
Attach partial symtab storage to psymbol_functions

Currently, the storage for partial symtabs is attached to the objfile.
Ultimately, though, this direct assocation will be removed, and the
storage will be owned by the psymbol_functions object.

This patch is a step toward this goal.  The storage is already managed
as a shared_ptr, to enable cross-objfile sharing, so this adds a
reference from the psymbol_functions, and changes some code in
psymtab.c to use this reference instead.

gdb/ChangeLog
2021-03-20  Tom Tromey  <tom@tromey.com>

* dwarf2/read.c (dwarf2_build_psymtabs): Call
set_partial_symtabs.
* symfile.c (syms_from_objfile_1, reread_symbols): Update.
* psymtab.h (make_psymbol_functions): Add partial_symtabs
parameter.
* psymtab.c (find_pc_sect_psymtab): Add partial_symtabs
parameter.
(psymbol_functions::find_pc_sect_compunit_symtab)
(psymbol_functions::print_stats, psymbol_functions::dump)
(psymbol_functions::has_symbols): Update.
(make_psymbol_functions, dump_psymtab_addrmap): Add
partial_symtabs parameter.
(maintenance_print_psymbols): Update.
(psymbol_functions::expand_symtabs_matching): Update.
* psympriv.h (struct psymbol_functions): Add constructor.
<m_partial_symtabs>: New member.
<set_partial_symtabs>: New method.
gdb/ChangeLog
gdb/dwarf2/read.c
gdb/psympriv.h
gdb/psymtab.c
gdb/psymtab.h
gdb/symfile.c