aboutsummaryrefslogtreecommitdiff
path: root/gdb/objfiles.c
diff options
context:
space:
mode:
authorTom Tromey <tom@tromey.com>2018-03-12 21:50:33 -0600
committerTom Tromey <tom@tromey.com>2018-03-16 14:22:13 -0600
commit37e136b1684929df204ddd09c38978c705fa7228 (patch)
tree08037fc61219a9f4006118689c590033bc5cedb7 /gdb/objfiles.c
parent8b067d2cf5bf801eb143b4b04da5c22607673471 (diff)
downloadbinutils-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.c11
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. */