diff options
author | Tom Tromey <tom@tromey.com> | 2018-03-12 21:50:33 -0600 |
---|---|---|
committer | Tom Tromey <tom@tromey.com> | 2018-03-16 14:22:13 -0600 |
commit | 37e136b1684929df204ddd09c38978c705fa7228 (patch) | |
tree | 08037fc61219a9f4006118689c590033bc5cedb7 /gdb/objfiles.c | |
parent | 8b067d2cf5bf801eb143b4b04da5c22607673471 (diff) | |
download | binutils-37e136b1684929df204ddd09c38978c705fa7228.zip binutils-37e136b1684929df204ddd09c38978c705fa7228.tar.gz binutils-37e136b1684929df204ddd09c38978c705fa7228.tar.bz2 |
Remove make_cleanup_free_section_addr_info
This removes make_cleanup_free_section_addr_info. Instead -- per
Simon's suggestion -- this changes section_addr_info to be a
std::vector.
Regression tested by the buildbot.
gdb/ChangeLog
2018-03-16 Tom Tromey <tom@tromey.com>
* xcoffread.c (xcoff_symfile_offsets): Change type of "addrs".
* utils.h (make_cleanup_free_section_addr_info): Don't declare.
* utils.c (do_free_section_addr_info)
(make_cleanup_free_section_addr_info): Remove.
* symfile.h (struct other_sections): Add constructor.
(struct section_addr_info): Remove.
(section_addr_info): New typedef.
(struct sym_fns) <sym_offsets>: Change type of parameter.
(build_section_addr_info_from_objfile)
(relative_addr_info_to_section_offsets, addr_info_make_relative)
(default_symfile_offsets, symbol_file_add)
(symbol_file_add_from_bfd)
(build_section_addr_info_from_section_table): Update.
(alloc_section_addr_info, free_section_addr_info): Don't declare.
* symfile.c (alloc_section_addr_info): Remove.
(build_section_addr_info_from_section_table): Change return type.
Update.
(build_section_addr_info_from_bfd)
(build_section_addr_info_from_objfile): Likewise.
(free_section_addr_info): Remove.
(relative_addr_info_to_section_offsets): Change type of "addrs".
(addrs_section_compar): Now a std::sort comparator.
(addrs_section_sort): Change return type.
(addr_info_make_relative): Change type of "addrs". Update.
(default_symfile_offsets, syms_from_objfile_1)
(syms_from_objfile, symbol_file_add_with_addrs): Likewise.
(symbol_file_add_separate): Update.
(symbol_file_add): Change type of "addrs". Update.
(add_symbol_file_command): Update. Remove cleanups.
* symfile-mem.c (symbol_file_add_from_memory): Update. Remove
cleanups.
* symfile-debug.c (debug_sym_offsets): Change type of "info".
* solib.c (solib_read_symbols): Update.
* objfiles.c (objfile_relocate): Update. Remove cleanups.
* machoread.c (macho_symfile_offsets): Update.
* jit.c (jit_bfd_try_read_symtab): Update.
Diffstat (limited to 'gdb/objfiles.c')
-rw-r--r-- | gdb/objfiles.c | 11 |
1 files changed, 3 insertions, 8 deletions
diff --git a/gdb/objfiles.c b/gdb/objfiles.c index a9aaf89..3a57735 100644 --- a/gdb/objfiles.c +++ b/gdb/objfiles.c @@ -906,16 +906,13 @@ objfile_relocate (struct objfile *objfile, debug_objfile; debug_objfile = objfile_separate_debug_iterate (objfile, debug_objfile)) { - struct section_addr_info *objfile_addrs; - struct cleanup *my_cleanups; - - objfile_addrs = build_section_addr_info_from_objfile (objfile); - my_cleanups = make_cleanup (xfree, objfile_addrs); + section_addr_info objfile_addrs + = build_section_addr_info_from_objfile (objfile); /* Here OBJFILE_ADDRS contain the correct absolute addresses, the relative ones must be already created according to debug_objfile. */ - addr_info_make_relative (objfile_addrs, debug_objfile->obfd); + addr_info_make_relative (&objfile_addrs, debug_objfile->obfd); gdb_assert (debug_objfile->num_sections == gdb_bfd_count_sections (debug_objfile->obfd)); @@ -926,8 +923,6 @@ objfile_relocate (struct objfile *objfile, objfile_addrs); changed |= objfile_relocate1 (debug_objfile, new_debug_offsets.data ()); - - do_cleanups (my_cleanups); } /* Relocate breakpoints as necessary, after things are relocated. */ |