Use htab_up for demangled hash
This changes objfile_per_bfd_storage::demangled_names_hash to be an htab_up. This lets us remove some manual management code from the objfile_per_bfd_storage destructor. gdb/ChangeLog 2019-03-15 Tom Tromey <tom@tromey.com> * symtab.c (create_demangled_names_hash): Update. (symbol_set_names): Update. * objfiles.h (struct objfile_per_bfd_storage) <demangled_names_hash>: Now an htab_up. * objfiles.c (objfile_per_bfd_storage): Simplify.
This commit is contained in:
parent
d6797f465c
commit
db92718b54
4 changed files with 12 additions and 6 deletions
|
@ -1,3 +1,11 @@
|
||||||
|
2019-03-15 Tom Tromey <tom@tromey.com>
|
||||||
|
|
||||||
|
* symtab.c (create_demangled_names_hash): Update.
|
||||||
|
(symbol_set_names): Update.
|
||||||
|
* objfiles.h (struct objfile_per_bfd_storage)
|
||||||
|
<demangled_names_hash>: Now an htab_up.
|
||||||
|
* objfiles.c (objfile_per_bfd_storage): Simplify.
|
||||||
|
|
||||||
2019-03-15 Tom Tromey <tom@tromey.com>
|
2019-03-15 Tom Tromey <tom@tromey.com>
|
||||||
|
|
||||||
* objfiles.h (struct objfile_per_bfd_storage): Declare
|
* objfiles.h (struct objfile_per_bfd_storage): Declare
|
||||||
|
|
|
@ -119,8 +119,6 @@ static const struct bfd_data *objfiles_bfd_data;
|
||||||
|
|
||||||
objfile_per_bfd_storage::~objfile_per_bfd_storage ()
|
objfile_per_bfd_storage::~objfile_per_bfd_storage ()
|
||||||
{
|
{
|
||||||
if (demangled_names_hash)
|
|
||||||
htab_delete (demangled_names_hash);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Create the per-BFD storage object for OBJFILE. If ABFD is not
|
/* Create the per-BFD storage object for OBJFILE. If ABFD is not
|
||||||
|
|
|
@ -262,7 +262,7 @@ struct objfile_per_bfd_storage
|
||||||
name, and the second is the demangled name or just a zero byte
|
name, and the second is the demangled name or just a zero byte
|
||||||
if the name doesn't demangle. */
|
if the name doesn't demangle. */
|
||||||
|
|
||||||
htab *demangled_names_hash = NULL;
|
htab_up demangled_names_hash;
|
||||||
|
|
||||||
/* The per-objfile information about the entry point, the scope (file/func)
|
/* The per-objfile information about the entry point, the scope (file/func)
|
||||||
containing the entry point, and the scope of the user's main() func. */
|
containing the entry point, and the scope of the user's main() func. */
|
||||||
|
|
|
@ -740,9 +740,9 @@ create_demangled_names_hash (struct objfile_per_bfd_storage *per_bfd)
|
||||||
Choosing a much larger table size wastes memory, and saves only about
|
Choosing a much larger table size wastes memory, and saves only about
|
||||||
1% in symbol reading. */
|
1% in symbol reading. */
|
||||||
|
|
||||||
per_bfd->demangled_names_hash = htab_create_alloc
|
per_bfd->demangled_names_hash.reset (htab_create_alloc
|
||||||
(256, hash_demangled_name_entry, eq_demangled_name_entry,
|
(256, hash_demangled_name_entry, eq_demangled_name_entry,
|
||||||
NULL, xcalloc, xfree);
|
NULL, xcalloc, xfree));
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Try to determine the demangled name for a symbol, based on the
|
/* Try to determine the demangled name for a symbol, based on the
|
||||||
|
@ -848,7 +848,7 @@ symbol_set_names (struct general_symbol_info *gsymbol,
|
||||||
|
|
||||||
entry.mangled = linkage_name_copy;
|
entry.mangled = linkage_name_copy;
|
||||||
slot = ((struct demangled_name_entry **)
|
slot = ((struct demangled_name_entry **)
|
||||||
htab_find_slot (per_bfd->demangled_names_hash,
|
htab_find_slot (per_bfd->demangled_names_hash.get (),
|
||||||
&entry, INSERT));
|
&entry, INSERT));
|
||||||
|
|
||||||
/* If this name is not in the hash table, add it. */
|
/* If this name is not in the hash table, add it. */
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue