Use std::vector in gdb_bfd_data
authorTom Tromey <tom@tromey.com>
Sun, 15 Oct 2017 17:31:46 +0000 (11:31 -0600)
committerTom Tromey <tom@tromey.com>
Fri, 20 Oct 2017 15:01:04 +0000 (09:01 -0600)
This changes gdb_bfd_data to use std::vector rather than VEC.

ChangeLog
2017-10-20  Tom Tromey  <tom@tromey.com>

* gdb_bfd.c (struct gdb_bfd_data) <included_bfds>: Now a
std::vector.
(gdb_bfd_record_inclusion): Update.
(bfdp): Remove typedef.

gdb/ChangeLog
gdb/gdb_bfd.c

index 97fcde2..e6e1d02 100644 (file)
@@ -1,5 +1,12 @@
 2017-10-20  Tom Tromey  <tom@tromey.com>
 
+       * gdb_bfd.c (struct gdb_bfd_data) <included_bfds>: Now a
+       std::vector.
+       (gdb_bfd_record_inclusion): Update.
+       (bfdp): Remove typedef.
+
+2017-10-20  Tom Tromey  <tom@tromey.com>
+
        * gdb_bfd.c (gdb_bfd_ref): Use new.
        (struct gdb_bfd_data): Add constructor, destructor, and member
        initializers.
index b60d237..cc02740 100644 (file)
@@ -34,9 +34,6 @@
 #include "gdb/fileio.h"
 #include "inferior.h"
 
-typedef bfd *bfdp;
-DEF_VEC_P (bfdp);
-
 /* An object of this type is stored in the section's user data when
    mapping a section.  */
 
@@ -87,14 +84,6 @@ struct gdb_bfd_data
 
   ~gdb_bfd_data ()
   {
-    int ix;
-    bfd *included_bfd;
-
-    for (ix = 0;
-        VEC_iterate (bfdp, included_bfds, ix, included_bfd);
-        ++ix)
-      gdb_bfd_unref (included_bfd);
-    VEC_free (bfdp, included_bfds);
   }
 
   /* The reference count.  */
@@ -130,7 +119,7 @@ struct gdb_bfd_data
   bfd *archive_bfd = nullptr;
 
   /* Table of all the bfds this bfd has included.  */
-  VEC (bfdp) *included_bfds = nullptr;
+  std::vector<gdb_bfd_ref_ptr> included_bfds;
 
   /* The registry.  */
   REGISTRY_FIELDS = {};
@@ -875,9 +864,8 @@ gdb_bfd_record_inclusion (bfd *includer, bfd *includee)
 {
   struct gdb_bfd_data *gdata;
 
-  gdb_bfd_ref (includee);
   gdata = (struct gdb_bfd_data *) bfd_usrdata (includer);
-  VEC_safe_push (bfdp, gdata->included_bfds, includee);
+  gdata->included_bfds.push_back (new_bfd_ref (includee));
 }
 
 /* See gdb_bfd.h.  */