From: Tom Tromey Date: Mon, 21 May 2018 04:45:44 +0000 (-0600) Subject: Make free_pending_blocks static X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=652788a73137d8c16ac67a0cf9a8e51dd336d09e;p=binutils-gdb.git Make free_pending_blocks static free_pending_blocks can be static because scoped_free_pendings (et al) arrange for it to be NULL in the "steady state". This removes a couple of unnecessary calls to free_pending_blocks and changes it to be static. gdb/ChangeLog 2018-07-16 Tom Tromey * xcoffread.c (xcoff_initial_scan): Don't call free_pending_blocks. * dbxread.c (dbx_symfile_read): Don't call free_pending_blocks. * buildsym.h (class scoped_free_pendings): Add constructor. (free_pending_blocks): Don't declare. * buildsym.c (scoped_free_pendings::scoped_free_pendings): New. (free_pending_blocks): Now static. --- diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 7d12bee3b11..0fb34968159 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,13 @@ +2018-07-16 Tom Tromey + + * xcoffread.c (xcoff_initial_scan): Don't call + free_pending_blocks. + * dbxread.c (dbx_symfile_read): Don't call free_pending_blocks. + * buildsym.h (class scoped_free_pendings): Add constructor. + (free_pending_blocks): Don't declare. + * buildsym.c (scoped_free_pendings::scoped_free_pendings): New. + (free_pending_blocks): Now static. + 2018-07-16 Tom Tromey * buildsym.h (push_subfile, pop_subfile): Update declarations. diff --git a/gdb/buildsym.c b/gdb/buildsym.c index 8d06cec1630..4e5da073723 100644 --- a/gdb/buildsym.c +++ b/gdb/buildsym.c @@ -263,6 +263,8 @@ static void record_pending_block (struct objfile *objfile, struct block *block, struct pending_block *opblock); +static void free_pending_blocks (); + /* Initial sizes of data structures. These are realloc'd larger if needed, and realloc'd down to the size actually used, when completed. */ @@ -331,6 +333,11 @@ find_symbol_in_list (struct pending *list, char *name, int length) return (NULL); } +scoped_free_pendings::scoped_free_pendings () +{ + gdb_assert (pending_blocks == nullptr); +} + /* At end of reading syms, or in case of quit, ensure everything associated with building symtabs is freed. @@ -373,8 +380,8 @@ scoped_free_pendings::~scoped_free_pendings () /* This function is called to discard any pending blocks. */ -void -free_pending_blocks (void) +static void +free_pending_blocks () { if (pending_blocks != NULL) { diff --git a/gdb/buildsym.h b/gdb/buildsym.h index b5ea63d3f48..512d926dcb9 100644 --- a/gdb/buildsym.h +++ b/gdb/buildsym.h @@ -176,7 +176,7 @@ class scoped_free_pendings { public: - scoped_free_pendings () = default; + scoped_free_pendings (); ~scoped_free_pendings (); DISABLE_COPY_AND_ASSIGN (scoped_free_pendings); @@ -222,8 +222,6 @@ extern struct compunit_symtab *start_symtab (struct objfile *objfile, extern void restart_symtab (struct compunit_symtab *cust, const char *name, CORE_ADDR start_addr); -extern void free_pending_blocks (void); - /* Record the name of the debug format in the current pending symbol table. FORMAT must be a string with a lifetime at least as long as the symtab's objfile. */ diff --git a/gdb/dbxread.c b/gdb/dbxread.c index 7729315adb6..5d4b97858a0 100644 --- a/gdb/dbxread.c +++ b/gdb/dbxread.c @@ -545,7 +545,6 @@ dbx_symfile_read (struct objfile *objfile, symfile_add_flags symfile_flags) symbol_size = DBX_SYMBOL_SIZE (objfile); symbol_table_offset = DBX_SYMTAB_OFFSET (objfile); - free_pending_blocks (); scoped_free_pendings free_pending; minimal_symbol_reader reader (objfile); diff --git a/gdb/xcoffread.c b/gdb/xcoffread.c index 31ba503f8ac..f9f19e7cbca 100644 --- a/gdb/xcoffread.c +++ b/gdb/xcoffread.c @@ -3018,8 +3018,6 @@ xcoff_initial_scan (struct objfile *objfile, symfile_add_flags symfile_flags) include N_SLINE. */ init_psymbol_list (objfile, num_symbols); - free_pending_blocks (); - scoped_free_pendings free_pending; minimal_symbol_reader reader (objfile);