diff options
author | Simon Marchi <simon.marchi@efficios.com> | 2020-05-19 12:18:04 -0400 |
---|---|---|
committer | Simon Marchi <simon.marchi@efficios.com> | 2020-05-19 12:18:36 -0400 |
commit | 62982abdee45cb20a7cfadb2b1bcc358655d4ad3 (patch) | |
tree | e4b4bc04a83dfc55cecc865b20ad561f8ec13939 /gdb/elfread.c | |
parent | 8ac10c5bfca0602398b38cc69976db213a7d9917 (diff) | |
download | fsf-binutils-gdb-62982abdee45cb20a7cfadb2b1bcc358655d4ad3.zip fsf-binutils-gdb-62982abdee45cb20a7cfadb2b1bcc358655d4ad3.tar.gz fsf-binutils-gdb-62982abdee45cb20a7cfadb2b1bcc358655d4ad3.tar.bz2 |
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.
Diffstat (limited to 'gdb/elfread.c')
-rw-r--r-- | gdb/elfread.c | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/gdb/elfread.c b/gdb/elfread.c index 2f2fef9..4804d62 100644 --- a/gdb/elfread.c +++ b/gdb/elfread.c @@ -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); |