diff options
author | Tom Tromey <tom@tromey.com> | 2020-02-08 13:40:54 -0700 |
---|---|---|
committer | Tom Tromey <tom@tromey.com> | 2020-02-08 13:43:24 -0700 |
commit | 0335378b4cd2fc8246b2eb7cfe2b7e4cf757a377 (patch) | |
tree | 7d68ca72c898594e02babc75b5699846db445ecd /gdb | |
parent | 48b490f28a2152134a51215a06cb22c9b09a7a80 (diff) | |
download | gdb-0335378b4cd2fc8246b2eb7cfe2b7e4cf757a377.zip gdb-0335378b4cd2fc8246b2eb7cfe2b7e4cf757a377.tar.gz gdb-0335378b4cd2fc8246b2eb7cfe2b7e4cf757a377.tar.bz2 |
Change dwarf2_per_objfile::die_type_hash to htab_up
This changes dwarf2_per_objfile::die_type_hash to be an htab_up,
moving its contents off the objfile obstack.
2020-02-08 Tom Tromey <tom@tromey.com>
* dwarf2/read.c (set_die_type, get_die_type_at_offset): Update.
* dwarf2/read.h (struct dwarf2_per_objfile) <die_type_hash>: Now
htab_up.
Change-Id: Ic651f99ebf71bf7ad2dc2880192adacf7b60964a
Diffstat (limited to 'gdb')
-rw-r--r-- | gdb/ChangeLog | 6 | ||||
-rw-r--r-- | gdb/dwarf2/read.c | 19 | ||||
-rw-r--r-- | gdb/dwarf2/read.h | 2 |
3 files changed, 14 insertions, 13 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 82e9931..014c858 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,5 +1,11 @@ 2020-02-08 Tom Tromey <tom@tromey.com> + * dwarf2/read.c (set_die_type, get_die_type_at_offset): Update. + * dwarf2/read.h (struct dwarf2_per_objfile) <die_type_hash>: Now + htab_up. + +2020-02-08 Tom Tromey <tom@tromey.com> + * dwarf2/read.c (struct dwp_file) <loaded_cus, loaded_tus>: Now htab_up. (lookup_dwo_unit_in_dwp): Update. diff --git a/gdb/dwarf2/read.c b/gdb/dwarf2/read.c index 4c445ea..e42f4f2 100644 --- a/gdb/dwarf2/read.c +++ b/gdb/dwarf2/read.c @@ -25184,22 +25184,17 @@ set_die_type (struct die_info *die, struct type *type, struct dwarf2_cu *cu) add_dyn_prop (DYN_PROP_DATA_LOCATION, prop, type); if (dwarf2_per_objfile->die_type_hash == NULL) - { - dwarf2_per_objfile->die_type_hash = - htab_create_alloc_ex (127, - per_cu_offset_and_type_hash, - per_cu_offset_and_type_eq, - NULL, - &objfile->objfile_obstack, - hashtab_obstack_allocate, - dummy_obstack_deallocate); - } + dwarf2_per_objfile->die_type_hash + = htab_up (htab_create_alloc (127, + per_cu_offset_and_type_hash, + per_cu_offset_and_type_eq, + NULL, xcalloc, xfree)); ofs.per_cu = cu->per_cu; ofs.sect_off = die->sect_off; ofs.type = type; slot = (struct dwarf2_per_cu_offset_and_type **) - htab_find_slot (dwarf2_per_objfile->die_type_hash, &ofs, INSERT); + htab_find_slot (dwarf2_per_objfile->die_type_hash.get (), &ofs, INSERT); if (*slot) complaint (_("A problem internal to GDB: DIE %s has type already set"), sect_offset_str (die->sect_off)); @@ -25225,7 +25220,7 @@ get_die_type_at_offset (sect_offset sect_off, ofs.per_cu = per_cu; ofs.sect_off = sect_off; slot = ((struct dwarf2_per_cu_offset_and_type *) - htab_find (dwarf2_per_objfile->die_type_hash, &ofs)); + htab_find (dwarf2_per_objfile->die_type_hash.get (), &ofs)); if (slot) return slot->type; else diff --git a/gdb/dwarf2/read.h b/gdb/dwarf2/read.h index 0f30837..c177747 100644 --- a/gdb/dwarf2/read.h +++ b/gdb/dwarf2/read.h @@ -214,7 +214,7 @@ public: /* Table mapping type DIEs to their struct type *. This is NULL if not allocated yet. The mapping is done via (CU/TU + DIE offset) -> type. */ - htab_t die_type_hash {}; + htab_up die_type_hash; /* The CUs we recently read. */ std::vector<dwarf2_per_cu_data *> just_read_cus; |