aboutsummaryrefslogtreecommitdiff
path: root/gdb/compile/compile-c-symbols.c
diff options
context:
space:
mode:
authorTom Tromey <tom@tromey.com>2016-11-20 13:20:32 -0700
committerTom Tromey <tom@tromey.com>2017-01-10 19:14:08 -0700
commitfc4007c969ec4208fb7c7cee2f50211a9aa0f40f (patch)
tree124c95351da6ad220406cd45875c72043259440d /gdb/compile/compile-c-symbols.c
parent8dbcee674ea4a8daa55f880ad7ade96efca96951 (diff)
downloadgdb-fc4007c969ec4208fb7c7cee2f50211a9aa0f40f.zip
gdb-fc4007c969ec4208fb7c7cee2f50211a9aa0f40f.tar.gz
gdb-fc4007c969ec4208fb7c7cee2f50211a9aa0f40f.tar.bz2
Remove make_cleanup_htab_delete
This removes make_cleanup_htab_delete in favor of destructors, building on an earlier patch that added the htab_up typedef. Testing revealed that more cleanup-removal work was needed in dwarf2loc.c, so this version of the patch changes code there to use unordered_set and vector, removing some more cleanups. 2017-01-10 Tom Tromey <tom@tromey.com> * utils.h (make_cleanup_htab_delete): Don't declare. * utils.c (do_htab_delete_cleanup, make_cleanup_htab_delete): Remove. * linespec.c (decode_compound_collector): Add constructor, destructor. (lookup_prefix_sym): Remove cleanup. (symtab_collector): Add constructor, destructor. (collect_symtabs_from_filename): Remove cleanup. * disasm.c (do_mixed_source_and_assembly): Use htab_up. * compile/compile-c-symbols.c (generate_c_for_variable_locations): Use htab_up. * gnu-v3-abi.c (gnuv3_print_vtable): Use htab_up. * dwarf2read.c (dw2_expand_symtabs_matching) (dw2_map_symbol_filenames, dwarf_decode_macros) (write_psymtabs_to_index): Use htab_up. * dwarf2loc.c (func_verify_no_selftailcall) (call_site_find_chain_1, func_verify_no_selftailcall) (chain_candidate, call_site_find_chain_1): Use std::unordered_set, std::vector, gdb::unique_xmalloc_ptr. (call_sitep): Remove typedef. (dwarf2_locexpr_baton_eval): Remove unused variable.
Diffstat (limited to 'gdb/compile/compile-c-symbols.c')
-rw-r--r--gdb/compile/compile-c-symbols.c11
1 files changed, 4 insertions, 7 deletions
diff --git a/gdb/compile/compile-c-symbols.c b/gdb/compile/compile-c-symbols.c
index 01e253f..6010006 100644
--- a/gdb/compile/compile-c-symbols.c
+++ b/gdb/compile/compile-c-symbols.c
@@ -724,8 +724,7 @@ generate_c_for_variable_locations (struct compile_c_instance *compiler,
const struct block *block,
CORE_ADDR pc)
{
- struct cleanup *cleanup, *outer;
- htab_t symhash;
+ struct cleanup *outer;
const struct block *static_block = block_static_block (block);
unsigned char *registers_used;
@@ -739,9 +738,8 @@ generate_c_for_variable_locations (struct compile_c_instance *compiler,
/* Ensure that a given name is only entered once. This reflects the
reality of shadowing. */
- symhash = htab_create_alloc (1, hash_symname, eq_symname, NULL,
- xcalloc, xfree);
- cleanup = make_cleanup_htab_delete (symhash);
+ htab_up symhash (htab_create_alloc (1, hash_symname, eq_symname, NULL,
+ xcalloc, xfree));
while (1)
{
@@ -754,7 +752,7 @@ generate_c_for_variable_locations (struct compile_c_instance *compiler,
sym != NULL;
sym = block_iterator_next (&iter))
{
- if (!symbol_seen (symhash, sym))
+ if (!symbol_seen (symhash.get (), sym))
generate_c_for_for_one_variable (compiler, stream, gdbarch,
registers_used, pc, sym);
}
@@ -766,7 +764,6 @@ generate_c_for_variable_locations (struct compile_c_instance *compiler,
block = BLOCK_SUPERBLOCK (block);
}
- do_cleanups (cleanup);
discard_cleanups (outer);
return registers_used;
}