aboutsummaryrefslogtreecommitdiff
path: root/gdb/objfiles.c
diff options
context:
space:
mode:
authorTom Tromey <tom@tromey.com>2019-04-07 15:39:37 -0600
committerTom Tromey <tom@tromey.com>2019-04-19 14:20:25 -0600
commitcf250e36790aaa255bb486e2122bb83c95c7669b (patch)
tree9d23da3203929ca556c5309b337243b65e77dc6c /gdb/objfiles.c
parent61f4b350419e91560be94e0671a760b2e4902c65 (diff)
downloadfsf-binutils-gdb-cf250e36790aaa255bb486e2122bb83c95c7669b.zip
fsf-binutils-gdb-cf250e36790aaa255bb486e2122bb83c95c7669b.tar.gz
fsf-binutils-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.c16
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. */