mirror of
https://github.com/bminor/binutils-gdb.git
synced 2025-12-26 17:18:55 +00:00
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:
@@ -85,14 +85,13 @@ static const struct bfd_key<elfread_data> probe_key;
|
||||
|
||||
/* Locate the segments in ABFD. */
|
||||
|
||||
static struct symfile_segment_data *
|
||||
static symfile_segment_data_up
|
||||
elf_symfile_segments (bfd *abfd)
|
||||
{
|
||||
Elf_Internal_Phdr *phdrs, **segments;
|
||||
long phdrs_size;
|
||||
int num_phdrs, num_segments, num_sections, i;
|
||||
asection *sect;
|
||||
struct symfile_segment_data *data;
|
||||
|
||||
phdrs_size = bfd_get_elf_phdr_upper_bound (abfd);
|
||||
if (phdrs_size == -1)
|
||||
@@ -112,7 +111,7 @@ elf_symfile_segments (bfd *abfd)
|
||||
if (num_segments == 0)
|
||||
return NULL;
|
||||
|
||||
data = XCNEW (struct symfile_segment_data);
|
||||
symfile_segment_data_up data (new symfile_segment_data);
|
||||
data->num_segments = num_segments;
|
||||
data->segment_bases = XCNEWVEC (CORE_ADDR, num_segments);
|
||||
data->segment_sizes = XCNEWVEC (CORE_ADDR, num_segments);
|
||||
|
||||
Reference in New Issue
Block a user