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 | 68b888fff3164b5e8e347d9c1ca351c366f0aac4 (patch) | |
tree | 407df662edc349c3ec33bf23379f33d3bce06cd4 /gdb/elfread.c | |
parent | 62982abdee45cb20a7cfadb2b1bcc358655d4ad3 (diff) | |
download | gdb-68b888fff3164b5e8e347d9c1ca351c366f0aac4.zip gdb-68b888fff3164b5e8e347d9c1ca351c366f0aac4.tar.gz gdb-68b888fff3164b5e8e347d9c1ca351c366f0aac4.tar.bz2 |
gdb: use std::vector to store segments in symfile_segment_data
Instead of maintaining two vectors, I added a small `segment` class
which holds both the base address and size of one segment and replaced
the two `segment_bases` and `segment_sizes` arrays with a single vector.
The rest of the changes are straightforward, no behavior changes are
expected.
gdb/ChangeLog:
* symfile.h (struct symfile_segment_data) <struct segment>: New.
<segments>: New.
<segment_bases, segment_sizes>: Remove.
* symfile.c (default_symfile_segments): Update.
* elfread.c (elf_symfile_segments): Update.
* remote.c (remote_target::get_offsets): Update.
* solib-target.c (solib_target_relocate_section_addresses):
Update.
Diffstat (limited to 'gdb/elfread.c')
-rw-r--r-- | gdb/elfread.c | 9 |
1 files changed, 2 insertions, 7 deletions
diff --git a/gdb/elfread.c b/gdb/elfread.c index 4804d62..4318ebf 100644 --- a/gdb/elfread.c +++ b/gdb/elfread.c @@ -112,15 +112,10 @@ elf_symfile_segments (bfd *abfd) return NULL; 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); + data->segments.reserve (num_segments); for (i = 0; i < num_segments; i++) - { - data->segment_bases[i] = segments[i]->p_vaddr; - data->segment_sizes[i] = segments[i]->p_memsz; - } + data->segments.emplace_back (segments[i]->p_vaddr, segments[i]->p_memsz); num_sections = bfd_count_sections (abfd); data->segment_info = XCNEWVEC (int, num_sections); |