[gcc(refs/users/marxin/heads/lto-plugin-cleanup)] Put claimed_files to std::vector.

Martin Liska marxin@gcc.gnu.org
Thu Jan 6 11:22:53 GMT 2022


https://gcc.gnu.org/g:a25e22825e3a0d4a616afd94583449028b84a13b

commit a25e22825e3a0d4a616afd94583449028b84a13b
Author: Martin Liska <mliska@suse.cz>
Date:   Thu Jan 6 12:19:45 2022 +0100

    Put claimed_files to std::vector.

Diff:
---
 lto-plugin/lto-plugin.cc | 38 ++++++++++++++++----------------------
 1 file changed, 16 insertions(+), 22 deletions(-)

diff --git a/lto-plugin/lto-plugin.cc b/lto-plugin/lto-plugin.cc
index f80d69d0725..ebbcbbe83c3 100644
--- a/lto-plugin/lto-plugin.cc
+++ b/lto-plugin/lto-plugin.cc
@@ -74,6 +74,8 @@ along with this program; see the file COPYING3.  If not see
 #include "simple-object.h"
 #include "plugin-api.h"
 
+#include <vector>
+
 /* We need to use I64 instead of ll width-specifier on native Windows.
    The reason for this is that older MS-runtimes don't support the ll.  */
 #ifdef __MINGW32__
@@ -170,8 +172,7 @@ static ld_plugin_add_input_library add_input_library;
 static ld_plugin_message message;
 static ld_plugin_add_symbols add_symbols, add_symbols_v2;
 
-static struct plugin_file_info *claimed_files = NULL;
-static unsigned int num_claimed_files = 0;
+static std::vector<plugin_file_info> claimed_files;
 static unsigned int non_claimed_files = 0;
 
 /* List of files with offloading.  */
@@ -416,11 +417,11 @@ parse_symtab_extension (char *data, char *end, struct plugin_symtab *out)
    resolution. */
 
 static void
-free_1 (struct plugin_file_info *files, unsigned num_files)
+free_claimed_files ()
 {
-  for (unsigned i = 0; i < num_files; i++)
+  for (unsigned i = 0; i < claimed_files.size (); i++)
     {
-      struct plugin_file_info *info = &files[i];
+      struct plugin_file_info *info = &claimed_files[i];
       struct plugin_symtab *symtab = &info->symtab;
       for (int j = 0; j < symtab->nsyms; j++)
 	{
@@ -439,7 +440,7 @@ static void
 free_2 (void)
 {
   unsigned int i;
-  for (i = 0; i < num_claimed_files; i++)
+  for (i = 0; i < claimed_files.size (); i++)
     {
       struct plugin_file_info *info = &claimed_files[i];
       struct plugin_symtab *symtab = &info->symtab;
@@ -451,9 +452,7 @@ free_2 (void)
     free (output_files[i]);
   free (output_files);
 
-  free (claimed_files);
-  claimed_files = NULL;
-  num_claimed_files = 0;
+  claimed_files.clear ();
 
   while (offload_files)
     {
@@ -554,9 +553,9 @@ write_resolution (void)
   f = fopen (resolution_file, "w");
   check (f, LDPL_FATAL, "could not open file");
 
-  fprintf (f, "%d\n", num_claimed_files);
+  fprintf (f, "%d\n", claimed_files.size ());
 
-  for (i = 0; i < num_claimed_files; i++)
+  for (i = 0; i < claimed_files.size (); i++)
     {
       struct plugin_file_info *info = &claimed_files[i];
       struct plugin_symtab *symtab = &info->symtab;
@@ -712,7 +711,7 @@ static void
 use_original_files (void)
 {
   unsigned i;
-  for (i = 0; i < num_claimed_files; i++)
+  for (i = 0; i < claimed_files.size (); i++)
     {
       struct plugin_file_info *info = &claimed_files[i];
       add_input_file (info->name);
@@ -726,13 +725,13 @@ static enum ld_plugin_status
 all_symbols_read_handler (void)
 {
   const unsigned num_lto_args
-    = num_claimed_files + lto_wrapper_num_args + 2
+    = claimed_files.size () + lto_wrapper_num_args + 2
       + !linker_output_known + !linker_output_auto_nolto_rel;
   unsigned i;
   char **lto_argv;
   const char *linker_output_str = NULL;
   const char **lto_arg_ptr;
-  if (num_claimed_files + num_offload_files == 0)
+  if (claimed_files.size () + num_offload_files == 0)
     return LDPS_OK;
 
   if (nop)
@@ -754,8 +753,7 @@ all_symbols_read_handler (void)
   assert (lto_wrapper_argv);
 
   write_resolution ();
-
-  free_1 (claimed_files, num_claimed_files);
+  free_claimed_files ();
 
   for (i = 0; i < lto_wrapper_num_args; i++)
     *lto_arg_ptr++ = lto_wrapper_argv[i];
@@ -821,7 +819,7 @@ all_symbols_read_handler (void)
       *lto_arg_ptr++ = arg;
     }
 
-  for (i = 0; i < num_claimed_files; i++)
+  for (i = 0; i < claimed_files.size (); i++)
     {
       struct plugin_file_info *info = &claimed_files[i];
 
@@ -1229,11 +1227,7 @@ claim_file_handler (const struct ld_plugin_input_file *file, int *claimed)
 			      lto_file.symtab.syms);
       check (status == LDPS_OK, LDPL_FATAL, "could not add symbols");
 
-      num_claimed_files++;
-      claimed_files = XRESIZEVEC (struct plugin_file_info,
-				  claimed_files, num_claimed_files);
-      claimed_files[num_claimed_files - 1] = lto_file;
-
+      claimed_files.push_back (lto_file);
       *claimed = 1;
     }


More information about the Gcc-cvs mailing list