Use std::vector in reread_symbols
authorTom Tromey <tom@tromey.com>
Fri, 7 Apr 2017 21:58:25 +0000 (15:58 -0600)
committerTom Tromey <tom@tromey.com>
Wed, 12 Apr 2017 17:16:19 +0000 (11:16 -0600)
This changes reread_symbols to use std::vector, removing a cleanup.

gdb/ChangeLog
2017-04-12  Tom Tromey  <tom@tromey.com>

* symfile.c (objfilep): Remove typedef.
(reread_symbols): Use a std::vector.

gdb/ChangeLog
gdb/symfile.c

index 36514272a7445fd6b00d3653a1a3bdff3247de3c..e7352729e84689aceae0c5b12ed4e0269c4f4a5c 100644 (file)
@@ -1,3 +1,8 @@
+2017-04-12  Tom Tromey  <tom@tromey.com>
+
+       * symfile.c (objfilep): Remove typedef.
+       (reread_symbols): Use a std::vector.
+
 2017-04-12  Tom Tromey  <tom@tromey.com>
 
        * mi/mi-main.c (exec_direction_forward): Remove.
index 7810f2c160bf2324e6780992d3fdb488edd0ed3f..846aabec481565eeb09ef395ca740d4a7dc7809a 100644 (file)
@@ -2434,10 +2434,6 @@ remove_symbol_file_command (char *args, int from_tty)
   do_cleanups (my_cleanups);
 }
 
-typedef struct objfile *objfilep;
-
-DEF_VEC_P (objfilep);
-
 /* Re-read symbols if a symbol-file has changed.  */
 
 void
@@ -2447,10 +2443,7 @@ reread_symbols (void)
   long new_modtime;
   struct stat new_statbuf;
   int res;
-  VEC (objfilep) *new_objfiles = NULL;
-  struct cleanup *all_cleanups;
-
-  all_cleanups = make_cleanup (VEC_cleanup (objfilep), &new_objfiles);
+  std::vector<struct objfile *> new_objfiles;
 
   /* With the addition of shared libraries, this should be modified,
      the load time should be saved in the partial symbol tables, since
@@ -2661,14 +2654,12 @@ reread_symbols (void)
          objfile->mtime = new_modtime;
          init_entry_point_info (objfile);
 
-         VEC_safe_push (objfilep, new_objfiles, objfile);
+         new_objfiles.push_back (objfile);
        }
     }
 
-  if (new_objfiles)
+  if (!new_objfiles.empty ())
     {
-      int ix;
-
       /* Notify objfiles that we've modified objfile sections.  */
       objfiles_changed ();
 
@@ -2677,15 +2668,13 @@ reread_symbols (void)
       /* clear_objfile_data for each objfile was called before freeing it and
         observer_notify_new_objfile (NULL) has been called by
         clear_symtab_users above.  Notify the new files now.  */
-      for (ix = 0; VEC_iterate (objfilep, new_objfiles, ix, objfile); ix++)
-       observer_notify_new_objfile (objfile);
+      for (auto iter : new_objfiles)
+       observer_notify_new_objfile (iter);
 
       /* At least one objfile has changed, so we can consider that
          the executable we're debugging has changed too.  */
       observer_notify_executable_changed ();
     }
-
-  do_cleanups (all_cleanups);
 }
 \f
 
This page took 0.029659 seconds and 4 git commands to generate.