Change end_psymtab_common to a method

This changes end_psymtab_common to be a method on partial_symtab.
This seems a little cleaner to me.

gdb/ChangeLog
2020-11-01  Tom Tromey  <tom@tromey.com>

	* dbxread.c (dbx_end_psymtab): Update.
	* dwarf2/read.c (process_psymtab_comp_unit_reader)
	(build_type_psymtabs_reader): Update.
	* xcoffread.c (xcoff_end_psymtab): Update.
	* ctfread.c (scan_partial_symbols): Update.
	* psymtab.c (sort_pst_symbols): Remove.
	(partial_symtab::end): Rename from end_psymtab_common.  Inline
	sort_pst_symbols.
	* psympriv.h (struct partial_symtab) <end>: New method.
	(end_psymtab_common): Don't declare.
This commit is contained in:
Tom Tromey 2020-11-01 09:51:13 -07:00
parent 0684bb51b5
commit ae7754b256
7 changed files with 33 additions and 24 deletions

View File

@ -1,3 +1,16 @@
2020-11-01 Tom Tromey <tom@tromey.com>
* dbxread.c (dbx_end_psymtab): Update.
* dwarf2/read.c (process_psymtab_comp_unit_reader)
(build_type_psymtabs_reader): Update.
* xcoffread.c (xcoff_end_psymtab): Update.
* ctfread.c (scan_partial_symbols): Update.
* psymtab.c (sort_pst_symbols): Remove.
(partial_symtab::end): Rename from end_psymtab_common. Inline
sort_pst_symbols.
* psympriv.h (struct partial_symtab) <end>: New method.
(end_psymtab_common): Don't declare.
2020-11-01 Tom Tromey <tom@tromey.com> 2020-11-01 Tom Tromey <tom@tromey.com>
* symmisc.c (count_psyms): New function. * symmisc.c (count_psyms): New function.

View File

@ -1464,7 +1464,7 @@ scan_partial_symbols (ctf_file_t *cfp, struct objfile *of)
0, language_c, of); 0, language_c, of);
} }
end_psymtab_common (pst); pst->end ();
} }
/* Read CTF debugging information from a BFD section. This is /* Read CTF debugging information from a BFD section. This is

View File

@ -2004,7 +2004,7 @@ dbx_end_psymtab (struct objfile *objfile, legacy_psymtab *pst,
/* End of kludge for patching Solaris textlow and texthigh. */ /* End of kludge for patching Solaris textlow and texthigh. */
end_psymtab_common (pst); pst->end ();
pst->number_of_dependencies = number_dependencies; pst->number_of_dependencies = number_dependencies;
if (number_dependencies) if (number_dependencies)

View File

@ -7634,7 +7634,7 @@ process_psymtab_comp_unit_reader (const struct die_reader_specs *reader,
best_highpc + baseaddr) best_highpc + baseaddr)
- baseaddr); - baseaddr);
end_psymtab_common (pst); pst->end ();
if (!cu->per_cu->imported_symtabs_empty ()) if (!cu->per_cu->imported_symtabs_empty ())
{ {
@ -7760,7 +7760,7 @@ build_type_psymtabs_reader (const struct die_reader_specs *reader,
highpc = (CORE_ADDR) 0; highpc = (CORE_ADDR) 0;
scan_partial_symbols (first_die, &lowpc, &highpc, 0, cu); scan_partial_symbols (first_die, &lowpc, &highpc, 0, cu);
end_psymtab_common (pst); pst->end ();
} }
/* Struct used to sort TUs by their abbreviation table offset. */ /* Struct used to sort TUs by their abbreviation table offset. */

View File

@ -248,6 +248,10 @@ struct partial_symtab
struct objfile *objfile); struct objfile *objfile);
/* Indicate that this partial symtab is complete. */
void end ();
/* Chain of all existing partial symtabs. */ /* Chain of all existing partial symtabs. */
struct partial_symtab *next = nullptr; struct partial_symtab *next = nullptr;
@ -436,8 +440,6 @@ struct legacy_psymtab : public standard_psymtab
void *read_symtab_private = nullptr; void *read_symtab_private = nullptr;
}; };
extern void end_psymtab_common (struct partial_symtab *);
/* Used when recording partial symbol tables. On destruction, /* Used when recording partial symbol tables. On destruction,
discards any partial symbol tables that have been built. However, discards any partial symbol tables that have been built. However,
the tables can be kept by calling the "keep" method. */ the tables can be kept by calling the "keep" method. */

View File

@ -1430,19 +1430,6 @@ const struct quick_symbol_functions psym_functions =
static void
sort_pst_symbols (struct partial_symtab *pst)
{
/* Sort the global list; don't sort the static list. */
std::sort (pst->global_psymbols.begin (),
pst->global_psymbols.end (),
[] (partial_symbol *s1, partial_symbol *s2)
{
return strcmp_iw_ordered (s1->ginfo.search_name (),
s2->ginfo.search_name ()) < 0;
});
}
/* Partially fill a partial symtab. It will be completely filled at /* Partially fill a partial symtab. It will be completely filled at
the end of the symbol list. */ the end of the symbol list. */
@ -1458,12 +1445,19 @@ partial_symtab::partial_symtab (const char *filename,
/* Perform "finishing up" operations of a partial symtab. */ /* Perform "finishing up" operations of a partial symtab. */
void void
end_psymtab_common (struct partial_symtab *pst) partial_symtab::end ()
{ {
pst->global_psymbols.shrink_to_fit (); global_psymbols.shrink_to_fit ();
pst->static_psymbols.shrink_to_fit (); static_psymbols.shrink_to_fit ();
sort_pst_symbols (pst); /* Sort the global list; don't sort the static list. */
std::sort (global_psymbols.begin (),
global_psymbols.end (),
[] (partial_symbol *s1, partial_symbol *s2)
{
return strcmp_iw_ordered (s1->ginfo.search_name (),
s2->ginfo.search_name ()) < 0;
});
} }
/* See psymtab.h. */ /* See psymtab.h. */

View File

@ -2000,7 +2000,7 @@ xcoff_end_psymtab (struct objfile *objfile, legacy_psymtab *pst,
first_fun_line_offset; first_fun_line_offset;
first_fun_line_offset = 0; first_fun_line_offset = 0;
end_psymtab_common (pst); pst->end ();
pst->number_of_dependencies = number_dependencies; pst->number_of_dependencies = number_dependencies;
if (number_dependencies) if (number_dependencies)