mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-06-25 04:49:54 +08:00
Use htab_up in dwarf2/read.c
This changes dwarf2/read.c to use htab_up rather than explicit calls to htab_delete. gdb/ChangeLog 2020-09-17 Tom Tromey <tom@tromey.com> * dwarf2/read.c (compute_compunit_symtab_includes): Use htab_up.
This commit is contained in:
@ -1,3 +1,7 @@
|
|||||||
|
2020-09-17 Tom Tromey <tom@tromey.com>
|
||||||
|
|
||||||
|
* dwarf2/read.c (compute_compunit_symtab_includes): Use htab_up.
|
||||||
|
|
||||||
2020-09-17 Tom Tromey <tom@tromey.com>
|
2020-09-17 Tom Tromey <tom@tromey.com>
|
||||||
|
|
||||||
* value.c (preserve_values): Update.
|
* value.c (preserve_values): Update.
|
||||||
|
@ -9857,23 +9857,24 @@ compute_compunit_symtab_includes (dwarf2_per_cu_data *per_cu,
|
|||||||
{
|
{
|
||||||
int len;
|
int len;
|
||||||
std::vector<compunit_symtab *> result_symtabs;
|
std::vector<compunit_symtab *> result_symtabs;
|
||||||
htab_t all_children, all_type_symtabs;
|
|
||||||
compunit_symtab *cust = per_objfile->get_symtab (per_cu);
|
compunit_symtab *cust = per_objfile->get_symtab (per_cu);
|
||||||
|
|
||||||
/* If we don't have a symtab, we can just skip this case. */
|
/* If we don't have a symtab, we can just skip this case. */
|
||||||
if (cust == NULL)
|
if (cust == NULL)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
all_children = htab_create_alloc (1, htab_hash_pointer, htab_eq_pointer,
|
htab_up all_children (htab_create_alloc (1, htab_hash_pointer,
|
||||||
NULL, xcalloc, xfree);
|
htab_eq_pointer,
|
||||||
all_type_symtabs = htab_create_alloc (1, htab_hash_pointer, htab_eq_pointer,
|
NULL, xcalloc, xfree));
|
||||||
NULL, xcalloc, xfree);
|
htab_up all_type_symtabs (htab_create_alloc (1, htab_hash_pointer,
|
||||||
|
htab_eq_pointer,
|
||||||
|
NULL, xcalloc, xfree));
|
||||||
|
|
||||||
for (dwarf2_per_cu_data *ptr : *per_cu->imported_symtabs)
|
for (dwarf2_per_cu_data *ptr : *per_cu->imported_symtabs)
|
||||||
{
|
{
|
||||||
recursively_compute_inclusions (&result_symtabs, all_children,
|
recursively_compute_inclusions (&result_symtabs, all_children.get (),
|
||||||
all_type_symtabs, ptr, per_objfile,
|
all_type_symtabs.get (), ptr,
|
||||||
cust);
|
per_objfile, cust);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Now we have a transitive closure of all the included symtabs. */
|
/* Now we have a transitive closure of all the included symtabs. */
|
||||||
@ -9884,9 +9885,6 @@ compute_compunit_symtab_includes (dwarf2_per_cu_data *per_cu,
|
|||||||
memcpy (cust->includes, result_symtabs.data (),
|
memcpy (cust->includes, result_symtabs.data (),
|
||||||
len * sizeof (compunit_symtab *));
|
len * sizeof (compunit_symtab *));
|
||||||
cust->includes[len] = NULL;
|
cust->includes[len] = NULL;
|
||||||
|
|
||||||
htab_delete (all_children);
|
|
||||||
htab_delete (all_type_symtabs);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user