aboutsummaryrefslogtreecommitdiff
path: root/gdb/elfread.c
diff options
context:
space:
mode:
authorSimon Marchi <simon.marchi@efficios.com>2020-05-19 12:18:04 -0400
committerSimon Marchi <simon.marchi@efficios.com>2020-05-19 12:18:36 -0400
commit68b888fff3164b5e8e347d9c1ca351c366f0aac4 (patch)
tree407df662edc349c3ec33bf23379f33d3bce06cd4 /gdb/elfread.c
parent62982abdee45cb20a7cfadb2b1bcc358655d4ad3 (diff)
downloadgdb-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.c9
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);