gdb: allocate symfile_segment_data with new
- Allocate this structure with new instead of XNEW, use a unique pointer to manage its lifetime. - Change a few functions to return a unique pointer instead of a plain pointer. - Change free_symfile_segment_data to be symfile_segment_data's destructor. gdb/ChangeLog: * symfile.h (struct symfile_segment_data): Initialize fields. <~symfile_segment_data>: Add. (symfile_segment_data_up): New. (struct sym_fns) <sym_segments>: Return a symfile_segment_data_up. (default_symfile_segments): Return a symfile_segment_data_up. (free_symfile_segment_data): Remove. (get_symfile_segment_data): Return a symfile_segment_data_up. * symfile.c (default_symfile_segments): Likewise. (get_symfile_segment_data): Likewise. (free_symfile_segment_data): Remove. (symfile_find_segment_sections): Update. * elfread.c (elf_symfile_segments): Return a symfile_segment_data_up. * remote.c (remote_target::get_offsets): Update. * solib-target.c (solib_target_relocate_section_addresses): Update. * symfile-debug.c (debug_sym_segments): Return a symfile_segment_data_up.
This commit is contained in:
parent
8ac10c5bfc
commit
62982abdee
7 changed files with 55 additions and 45 deletions
|
@ -364,9 +364,9 @@ Could not relocate shared library \"%s\": wrong number of ALLOC sections"),
|
|||
}
|
||||
else if (!li->segment_bases.empty ())
|
||||
{
|
||||
struct symfile_segment_data *data;
|
||||
symfile_segment_data_up data
|
||||
= get_symfile_segment_data (so->abfd);
|
||||
|
||||
data = get_symfile_segment_data (so->abfd);
|
||||
if (data == NULL)
|
||||
warning (_("\
|
||||
Could not relocate shared library \"%s\": no segments"), so->so_name);
|
||||
|
@ -375,7 +375,7 @@ Could not relocate shared library \"%s\": no segments"), so->so_name);
|
|||
ULONGEST orig_delta;
|
||||
int i;
|
||||
|
||||
if (!symfile_map_offsets_to_segments (so->abfd, data,
|
||||
if (!symfile_map_offsets_to_segments (so->abfd, data.get (),
|
||||
li->offsets,
|
||||
li->segment_bases.size (),
|
||||
li->segment_bases.data ()))
|
||||
|
@ -407,8 +407,6 @@ Could not relocate shared library \"%s\": bad offsets"), so->so_name);
|
|||
+ data->segment_sizes[i - 1]
|
||||
+ orig_delta);
|
||||
gdb_assert (so->addr_low <= so->addr_high);
|
||||
|
||||
free_symfile_segment_data (data);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue