+2020-02-08 Tom Tromey <tom@tromey.com>
+
+ * dwarf2/read.c (~dwarf2_per_objfile): Update.
+ (create_quick_file_names_table): Return htab_up.
+ (dw2_get_file_names_reader, dw2_forget_cached_source_info):
+ Update.
+ * dwarf2/read.h (struct dwarf2_per_objfile)
+ <quick_file_names_table>: Now htab_up.
+
2020-02-08 Tom Tromey <tom@tromey.com>
* dwarf2/abbrev.c (abbrev_table::read): Simplify.
/* Cached DIE trees use xmalloc and the comp_unit_obstack. */
free_cached_comp_units ();
- if (quick_file_names_table)
- htab_delete (quick_file_names_table);
-
for (dwarf2_per_cu_data *per_cu : all_comp_units)
per_cu->imported_symtabs_free ();
/* Create a quick_file_names hash table. */
-static htab_t
+static htab_up
create_quick_file_names_table (unsigned int nr_initial_entries)
{
- return htab_create_alloc (nr_initial_entries,
- hash_file_name_entry, eq_file_name_entry,
- delete_file_name_entry, xcalloc, xfree);
+ return htab_up (htab_create_alloc (nr_initial_entries,
+ hash_file_name_entry, eq_file_name_entry,
+ delete_file_name_entry, xcalloc, xfree));
}
/* Read in PER_CU->CU. This function is unrelated to symtabs, symtab would
If we have we're done. */
find_entry.hash.dwo_unit = cu->dwo_unit;
find_entry.hash.line_sect_off = line_offset;
- slot = htab_find_slot (dwarf2_per_objfile->quick_file_names_table,
+ slot = htab_find_slot (dwarf2_per_objfile->quick_file_names_table.get (),
&find_entry, INSERT);
if (*slot != NULL)
{
struct dwarf2_per_objfile *dwarf2_per_objfile
= get_dwarf2_per_objfile (objfile);
- htab_traverse_noresize (dwarf2_per_objfile->quick_file_names_table,
+ htab_traverse_noresize (dwarf2_per_objfile->quick_file_names_table.get (),
dw2_free_cached_file_names, NULL);
}
sorted all the TUs into "type unit groups", grouped by their
DW_AT_stmt_list value. Therefore the only sharing done here is with a
CU and its associated TU group if there is one. */
- htab_t quick_file_names_table {};
+ htab_up quick_file_names_table;
/* Set during partial symbol reading, to prevent queueing of full
symbols. */