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 <tom@tromey.com> * 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.
This commit is contained in:
parent
8419ee5331
commit
652788a731
5 changed files with 20 additions and 8 deletions
|
@ -1,3 +1,13 @@
|
||||||
|
2018-07-16 Tom Tromey <tom@tromey.com>
|
||||||
|
|
||||||
|
* 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 <tom@tromey.com>
|
2018-07-16 Tom Tromey <tom@tromey.com>
|
||||||
|
|
||||||
* buildsym.h (push_subfile, pop_subfile): Update declarations.
|
* buildsym.h (push_subfile, pop_subfile): Update declarations.
|
||||||
|
|
|
@ -263,6 +263,8 @@ static void record_pending_block (struct objfile *objfile,
|
||||||
struct block *block,
|
struct block *block,
|
||||||
struct pending_block *opblock);
|
struct pending_block *opblock);
|
||||||
|
|
||||||
|
static void free_pending_blocks ();
|
||||||
|
|
||||||
/* Initial sizes of data structures. These are realloc'd larger if
|
/* Initial sizes of data structures. These are realloc'd larger if
|
||||||
needed, and realloc'd down to the size actually used, when
|
needed, and realloc'd down to the size actually used, when
|
||||||
completed. */
|
completed. */
|
||||||
|
@ -331,6 +333,11 @@ find_symbol_in_list (struct pending *list, char *name, int length)
|
||||||
return (NULL);
|
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
|
/* At end of reading syms, or in case of quit, ensure everything
|
||||||
associated with building symtabs is freed.
|
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. */
|
/* This function is called to discard any pending blocks. */
|
||||||
|
|
||||||
void
|
static void
|
||||||
free_pending_blocks (void)
|
free_pending_blocks ()
|
||||||
{
|
{
|
||||||
if (pending_blocks != NULL)
|
if (pending_blocks != NULL)
|
||||||
{
|
{
|
||||||
|
|
|
@ -176,7 +176,7 @@ class scoped_free_pendings
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
|
||||||
scoped_free_pendings () = default;
|
scoped_free_pendings ();
|
||||||
~scoped_free_pendings ();
|
~scoped_free_pendings ();
|
||||||
|
|
||||||
DISABLE_COPY_AND_ASSIGN (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,
|
extern void restart_symtab (struct compunit_symtab *cust,
|
||||||
const char *name, CORE_ADDR start_addr);
|
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
|
/* 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
|
table. FORMAT must be a string with a lifetime at least as long as
|
||||||
the symtab's objfile. */
|
the symtab's objfile. */
|
||||||
|
|
|
@ -545,7 +545,6 @@ dbx_symfile_read (struct objfile *objfile, symfile_add_flags symfile_flags)
|
||||||
symbol_size = DBX_SYMBOL_SIZE (objfile);
|
symbol_size = DBX_SYMBOL_SIZE (objfile);
|
||||||
symbol_table_offset = DBX_SYMTAB_OFFSET (objfile);
|
symbol_table_offset = DBX_SYMTAB_OFFSET (objfile);
|
||||||
|
|
||||||
free_pending_blocks ();
|
|
||||||
scoped_free_pendings free_pending;
|
scoped_free_pendings free_pending;
|
||||||
|
|
||||||
minimal_symbol_reader reader (objfile);
|
minimal_symbol_reader reader (objfile);
|
||||||
|
|
|
@ -3018,8 +3018,6 @@ xcoff_initial_scan (struct objfile *objfile, symfile_add_flags symfile_flags)
|
||||||
include N_SLINE. */
|
include N_SLINE. */
|
||||||
init_psymbol_list (objfile, num_symbols);
|
init_psymbol_list (objfile, num_symbols);
|
||||||
|
|
||||||
free_pending_blocks ();
|
|
||||||
|
|
||||||
scoped_free_pendings free_pending;
|
scoped_free_pendings free_pending;
|
||||||
minimal_symbol_reader reader (objfile);
|
minimal_symbol_reader reader (objfile);
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue