diff options
-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; |