Remove free_pendings
buildsym.c currently keeps a free list of "struct pending"s. However, this didn't seem necessary to me, and so this patch removes the free list. gdb/ChangeLog 2018-07-20 Tom Tromey <tom@tromey.com> * buildsym.c (free_pendings): Remove. (add_symbol_to_list, scoped_free_pendings) (finish_block_internal, buildsym_init): Update.
This commit is contained in:
parent
c233e9c641
commit
1d376700df
|
@ -1,3 +1,9 @@
|
|||
2018-07-20 Tom Tromey <tom@tromey.com>
|
||||
|
||||
* buildsym.c (free_pendings): Remove.
|
||||
(add_symbol_to_list, scoped_free_pendings)
|
||||
(finish_block_internal, buildsym_init): Update.
|
||||
|
||||
2018-07-20 Tom Tromey <tom@tromey.com>
|
||||
|
||||
* xcoffread.c (read_xcoff_symtab): Update.
|
||||
|
|
|
@ -256,10 +256,6 @@ struct buildsym_compunit
|
|||
|
||||
static struct buildsym_compunit *buildsym_compunit;
|
||||
|
||||
/* List of free `struct pending' structures for reuse. */
|
||||
|
||||
static struct pending *free_pendings;
|
||||
|
||||
/* List of blocks already made (lexical contexts already closed).
|
||||
This is used at the end to make the blockvector. */
|
||||
|
||||
|
@ -300,17 +296,8 @@ add_symbol_to_list (struct symbol *symbol, struct pending **listhead)
|
|||
/* We keep PENDINGSIZE symbols in each link of the list. If we
|
||||
don't have a link with room in it, add a new link. */
|
||||
if (*listhead == NULL || (*listhead)->nsyms == PENDINGSIZE)
|
||||
{
|
||||
if (free_pendings)
|
||||
{
|
||||
link = free_pendings;
|
||||
free_pendings = link->next;
|
||||
}
|
||||
else
|
||||
{
|
||||
link = XNEW (struct pending);
|
||||
}
|
||||
|
||||
link->next = *listhead;
|
||||
*listhead = link;
|
||||
link->nsyms = 0;
|
||||
|
@ -354,13 +341,6 @@ scoped_free_pendings::~scoped_free_pendings ()
|
|||
{
|
||||
struct pending *next, *next1;
|
||||
|
||||
for (next = free_pendings; next; next = next1)
|
||||
{
|
||||
next1 = next->next;
|
||||
xfree ((void *) next);
|
||||
}
|
||||
free_pendings = NULL;
|
||||
|
||||
for (next = file_symbols; next != NULL; next = next1)
|
||||
{
|
||||
next1 = next->next;
|
||||
|
@ -482,13 +462,12 @@ finish_block_internal (struct symbol *symbol,
|
|||
if (static_link != NULL)
|
||||
objfile_register_static_link (objfile, block, static_link);
|
||||
|
||||
/* Now "free" the links of the list, and empty the list. */
|
||||
/* Now free the links of the list, and empty the list. */
|
||||
|
||||
for (next = *listhead; next; next = next1)
|
||||
{
|
||||
next1 = next->next;
|
||||
next->next = free_pendings;
|
||||
free_pendings = next;
|
||||
xfree (next);
|
||||
}
|
||||
*listhead = NULL;
|
||||
|
||||
|
@ -1753,7 +1732,6 @@ buildsym_init ()
|
|||
{
|
||||
/* Ensure the scoped_free_pendings destructor was called after
|
||||
the last time. */
|
||||
gdb_assert (free_pendings == NULL);
|
||||
gdb_assert (file_symbols == NULL);
|
||||
gdb_assert (global_symbols == NULL);
|
||||
gdb_assert (buildsym_compunit == NULL);
|
||||
|
|
Loading…
Reference in New Issue