diff options
author | Tom Tromey <tom@tromey.com> | 2019-04-07 15:39:37 -0600 |
---|---|---|
committer | Tom Tromey <tom@tromey.com> | 2019-04-19 14:20:25 -0600 |
commit | cf250e36790aaa255bb486e2122bb83c95c7669b (patch) | |
tree | 9d23da3203929ca556c5309b337243b65e77dc6c /gdb/objfiles.c | |
parent | 61f4b350419e91560be94e0671a760b2e4902c65 (diff) | |
download | gdb-cf250e36790aaa255bb486e2122bb83c95c7669b.zip gdb-cf250e36790aaa255bb486e2122bb83c95c7669b.tar.gz gdb-cf250e36790aaa255bb486e2122bb83c95c7669b.tar.bz2 |
Make objfile::static_links an htab_up
This changes objfile::static_links to be an htab_up, so that ~objfile
no longer has to explicitly destroy it.
Tested by the buildbot.
gdb/ChangeLog
2019-04-19 Tom Tromey <tom@tromey.com>
* symfile.c (reread_symbols): Update.
* objfiles.c (objfile_register_static_link)
(objfile_lookup_static_link): Update
(~objfile) Don't delete static_links.
* objfiles.h (struct objfile) <static_links>: Now an htab_up.
Diffstat (limited to 'gdb/objfiles.c')
-rw-r--r-- | gdb/objfiles.c | 16 |
1 files changed, 5 insertions, 11 deletions
diff --git a/gdb/objfiles.c b/gdb/objfiles.c index e055365..1b0ea29 100644 --- a/gdb/objfiles.c +++ b/gdb/objfiles.c @@ -231,14 +231,14 @@ objfile_register_static_link (struct objfile *objfile, struct static_link_htab_entry *entry; if (objfile->static_links == NULL) - objfile->static_links = htab_create_alloc + objfile->static_links.reset (htab_create_alloc (1, &static_link_htab_entry_hash, static_link_htab_entry_eq, NULL, - xcalloc, xfree); + xcalloc, xfree)); /* Create a slot for the mapping, make sure it's the first mapping for this block and then create the mapping itself. */ lookup_entry.block = block; - slot = htab_find_slot (objfile->static_links, &lookup_entry, INSERT); + slot = htab_find_slot (objfile->static_links.get (), &lookup_entry, INSERT); gdb_assert (*slot == NULL); entry = XOBNEW (&objfile->objfile_obstack, static_link_htab_entry); @@ -260,9 +260,8 @@ objfile_lookup_static_link (struct objfile *objfile, if (objfile->static_links == NULL) return NULL; lookup_entry.block = block; - entry - = (struct static_link_htab_entry *) htab_find (objfile->static_links, - &lookup_entry); + entry = ((struct static_link_htab_entry *) + htab_find (objfile->static_links.get (), &lookup_entry)); if (entry == NULL) return NULL; @@ -691,11 +690,6 @@ objfile::~objfile () /* Rebuild section map next time we need it. */ get_objfile_pspace_data (pspace)->section_map_dirty = 1; - - /* Free the map for static links. There's no need to free static link - themselves since they were allocated on the objstack. */ - if (static_links != NULL) - htab_delete (static_links); } /* Free all the object files at once and clean up their users. */ |