From: Tom Tromey Date: Mon, 21 May 2018 14:35:43 +0000 (-0600) Subject: Remove free_pendings X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=1d376700df2476d8a8ca4fa503bdcfb0b425b683;p=binutils-gdb.git 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 * buildsym.c (free_pendings): Remove. (add_symbol_to_list, scoped_free_pendings) (finish_block_internal, buildsym_init): Update. --- diff --git a/gdb/ChangeLog b/gdb/ChangeLog index cfac8e09257..f41f4e110b5 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,9 @@ +2018-07-20 Tom Tromey + + * buildsym.c (free_pendings): Remove. + (add_symbol_to_list, scoped_free_pendings) + (finish_block_internal, buildsym_init): Update. + 2018-07-20 Tom Tromey * xcoffread.c (read_xcoff_symtab): Update. diff --git a/gdb/buildsym.c b/gdb/buildsym.c index 4c151211044..59b08f0375c 100644 --- a/gdb/buildsym.c +++ b/gdb/buildsym.c @@ -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. */ @@ -301,16 +297,7 @@ add_symbol_to_list (struct symbol *symbol, struct pending **listhead) 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 = 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);