gdb: make symfile_segment_data::segment_info an std::vector
authorSimon Marchi <simon.marchi@efficios.com>
Tue, 19 May 2020 16:18:05 +0000 (12:18 -0400)
committerSimon Marchi <simon.marchi@efficios.com>
Tue, 19 May 2020 16:18:36 +0000 (12:18 -0400)
Change the symfile_segment_data::segment_info array to be an
std::vector.  No functional changes are expected.

gdb/ChangeLog:

* symfile.h (struct symfile_segment_data)
<~symfile_segment_data>: Remove.
<segment_info>: Change to std::vector.
* symfile.c (default_symfile_segments): Update.
* elfread.c (elf_symfile_segments): Update.

gdb/ChangeLog
gdb/elfread.c
gdb/symfile.c
gdb/symfile.h

index c9f4a5ebb0282f4b5c50eb7c12e4ce74155cf505..f086b5cf908c639d5ee396350a44f9fda9635c84 100644 (file)
@@ -1,3 +1,11 @@
+2020-05-19  Simon Marchi  <simon.marchi@efficios.com>
+
+       * symfile.h (struct symfile_segment_data)
+       <~symfile_segment_data>: Remove.
+       <segment_info>: Change to std::vector.
+       * symfile.c (default_symfile_segments): Update.
+       * elfread.c (elf_symfile_segments): Update.
+
 2020-05-19  Simon Marchi  <simon.marchi@efficios.com>
 
        * symfile.h (struct symfile_segment_data) <struct segment>: New.
index 4318ebf9eb9b9ea5ef9b66f6f1905d01da555f98..75bdd75250b11cf56ad26ad8552e0981056a95b2 100644 (file)
@@ -118,7 +118,9 @@ elf_symfile_segments (bfd *abfd)
     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);
+
+  /* All elements are initialized to 0 (map to no segment).  */
+  data->segment_info.resize (num_sections);
 
   for (i = 0, sect = abfd->sections; sect != NULL; i++, sect = sect->next)
     {
index 22793e736398c0da9c7eca22ecd85007c0a81a91..e6ec458504af9d7aa639d5a9a90a234e5af5e4fc 100644 (file)
@@ -747,7 +747,9 @@ default_symfile_segments (bfd *abfd)
   symfile_segment_data_up data (new symfile_segment_data);
 
   num_sections = bfd_count_sections (abfd);
-  data->segment_info = XCNEWVEC (int, num_sections);
+
+  /* All elements are initialized to 0 (map to no segment).  */
+  data->segment_info.resize (num_sections);
 
   for (i = 0, sect = abfd->sections; sect != NULL; i++, sect = sect->next)
     {
index 1f2395169af984eded7438a5ca73d10901c8a391..fe79f79a04829e012b2970e65e2e94a646c12df2 100644 (file)
@@ -93,11 +93,6 @@ struct symfile_segment_data
     CORE_ADDR size;
   };
 
-  ~symfile_segment_data ()
-  {
-    xfree (this->segment_info);
-  }
-
   /* The segments present in this file.  If there are
      two, the text segment is the first one and the data segment
      is the second one.  */
@@ -106,7 +101,7 @@ struct symfile_segment_data
   /* This is an array of entries recording which segment contains each BFD
      section.  SEGMENT_INFO[I] is S+1 if the I'th BFD section belongs to segment
      S, or zero if it is not in any segment.  */
-  int *segment_info = nullptr;
+  std::vector<int> segment_info;
 };
 
 using symfile_segment_data_up = std::unique_ptr<symfile_segment_data>;