Simplify completion_list_add_name | remove sym_text / sym_text_len
authorPedro Alves <palves@redhat.com>
Wed, 8 Nov 2017 14:22:34 +0000 (14:22 +0000)
committerPedro Alves <palves@redhat.com>
Wed, 8 Nov 2017 16:05:45 +0000 (16:05 +0000)
sym_text_len existed to strip parameters out of the lookup name.  Now
that that's handled by the lookup_name_info objects, the
sym_text/sym_text_len parameters are no longer necessary.

gdb/ChangeLog:
2017-11-08  Pedro Alves  <palves@redhat.com>

* ada-lang.c (ada_make_symbol_completion_list): Remove text and
text_len locals and don't pass them down.
* symtab.c (completion_list_add_name): Remove
sym_text/sym_text_len parameters and adjust.
(completion_list_add_symbol, completion_list_add_msymbol)
(completion_list_objc_symbol, completion_list_add_fields)
(add_symtab_completions): Likewise.
(default_collect_symbol_completion_matches_break_on)
(collect_file_symbol_completion_matches): Remove sym_text_len
local and don't pass it down.
* symtab.h (completion_list_add_name): Remove
sym_text/sym_text_len parameters.

gdb/ChangeLog
gdb/ada-lang.c
gdb/symtab.c
gdb/symtab.h

index 8abe455..3150826 100644 (file)
@@ -1,5 +1,20 @@
 2017-11-08  Pedro Alves  <palves@redhat.com>
 
+       * ada-lang.c (ada_make_symbol_completion_list): Remove text and
+       text_len locals and don't pass them down.
+       * symtab.c (completion_list_add_name): Remove
+       sym_text/sym_text_len parameters and adjust.
+       (completion_list_add_symbol, completion_list_add_msymbol)
+       (completion_list_objc_symbol, completion_list_add_fields)
+       (add_symtab_completions): Likewise.
+       (default_collect_symbol_completion_matches_break_on)
+       (collect_file_symbol_completion_matches): Remove sym_text_len
+       local and don't pass it down.
+       * symtab.h (completion_list_add_name): Remove
+       sym_text/sym_text_len parameters.
+
+2017-11-08  Pedro Alves  <palves@redhat.com>
+
        * Makefile.in (SUBDIR_UNITTESTS_SRCS): Add
        unittests/lookup_name_info-selftests.c.
        (SUBDIR_UNITTESTS_OBS): Add lookup_name_info-selftests.o.
index 7ec19d2..9ebd25e 100644 (file)
@@ -6443,7 +6443,6 @@ ada_collect_symbol_completion_matches (completion_tracker &tracker,
                                       const char *text, const char *word,
                                       enum type_code code)
 {
-  int text_len;
   struct symbol *sym;
   struct compunit_symtab *s;
   struct minimal_symbol *msymbol;
@@ -6455,10 +6454,7 @@ ada_collect_symbol_completion_matches (completion_tracker &tracker,
 
   gdb_assert (code == TYPE_CODE_UNDEF);
 
-  text_len = strlen (text);
-
-  lookup_name_info lookup_name (std::string (text, text_len),
-                               name_match_type, true);
+  lookup_name_info lookup_name (text, name_match_type, true);
 
   /* First, look at the partial symtab symbols.  */
   expand_symtabs_matching (NULL,
@@ -6479,8 +6475,7 @@ ada_collect_symbol_completion_matches (completion_tracker &tracker,
     completion_list_add_name (tracker,
                              MSYMBOL_LANGUAGE (msymbol),
                              MSYMBOL_LINKAGE_NAME (msymbol),
-                             lookup_name,
-                             text, text_len, text, word);
+                             lookup_name, text, word);
   }
 
   /* Search upwards from currently selected frame (so that we can
@@ -6496,8 +6491,7 @@ ada_collect_symbol_completion_matches (completion_tracker &tracker,
        completion_list_add_name (tracker,
                                  SYMBOL_LANGUAGE (sym),
                                  SYMBOL_LINKAGE_NAME (sym),
-                                 lookup_name,
-                                 text, text_len, text, word);
+                                 lookup_name, text, word);
       }
     }
 
@@ -6513,8 +6507,7 @@ ada_collect_symbol_completion_matches (completion_tracker &tracker,
       completion_list_add_name (tracker,
                                SYMBOL_LANGUAGE (sym),
                                SYMBOL_LINKAGE_NAME (sym),
-                               lookup_name,
-                               text, text_len, text, word);
+                               lookup_name, text, word);
     }
   }
 
@@ -6530,8 +6523,7 @@ ada_collect_symbol_completion_matches (completion_tracker &tracker,
       completion_list_add_name (tracker,
                                SYMBOL_LANGUAGE (sym),
                                SYMBOL_LINKAGE_NAME (sym),
-                               lookup_name,
-                               text, text_len, text, word);
+                               lookup_name, text, word);
     }
   }
 
index 2d09f94..eb4e30d 100644 (file)
@@ -4669,7 +4669,6 @@ completion_list_add_name (completion_tracker &tracker,
                          language symbol_language,
                          const char *symname,
                          const lookup_name_info &lookup_name,
-                         const char *sym_text, int sym_text_len,
                          const char *text, const char *word)
 {
   completion_match_result &match_res
@@ -4691,23 +4690,23 @@ completion_list_add_name (completion_tracker &tracker,
   {
     char *newobj;
 
-    if (word == sym_text)
+    if (word == text)
       {
        newobj = (char *) xmalloc (strlen (symname) + 5);
        strcpy (newobj, symname);
       }
-    else if (word > sym_text)
+    else if (word > text)
       {
        /* Return some portion of symname.  */
        newobj = (char *) xmalloc (strlen (symname) + 5);
-       strcpy (newobj, symname + (word - sym_text));
+       strcpy (newobj, symname + (word - text));
       }
     else
       {
        /* Return some of SYM_TEXT plus symname.  */
-       newobj = (char *) xmalloc (strlen (symname) + (sym_text - word) + 5);
-       strncpy (newobj, word, sym_text - word);
-       newobj[sym_text - word] = '\0';
+       newobj = (char *) xmalloc (strlen (symname) + (text - word) + 5);
+       strncpy (newobj, word, text - word);
+       newobj[text - word] = '\0';
        strcat (newobj, symname);
       }
 
@@ -4723,12 +4722,11 @@ static void
 completion_list_add_symbol (completion_tracker &tracker,
                            symbol *sym,
                            const lookup_name_info &lookup_name,
-                           const char *sym_text, int sym_text_len,
                            const char *text, const char *word)
 {
   completion_list_add_name (tracker, SYMBOL_LANGUAGE (sym),
                            SYMBOL_NATURAL_NAME (sym),
-                           lookup_name, sym_text, sym_text_len, text, word);
+                           lookup_name, text, word);
 }
 
 /* completion_list_add_name wrapper for struct minimal_symbol.  */
@@ -4737,12 +4735,11 @@ static void
 completion_list_add_msymbol (completion_tracker &tracker,
                             minimal_symbol *sym,
                             const lookup_name_info &lookup_name,
-                            const char *sym_text, int sym_text_len,
                             const char *text, const char *word)
 {
   completion_list_add_name (tracker, MSYMBOL_LANGUAGE (sym),
                            MSYMBOL_NATURAL_NAME (sym),
-                           lookup_name, sym_text, sym_text_len, text, word);
+                           lookup_name, text, word);
 }
 
 
@@ -4753,7 +4750,6 @@ static void
 completion_list_objc_symbol (completion_tracker &tracker,
                             struct minimal_symbol *msymbol,
                             const lookup_name_info &lookup_name,
-                            const char *sym_text, int sym_text_len,
                             const char *text, const char *word)
 {
   static char *tmp = NULL;
@@ -4768,12 +4764,12 @@ completion_list_objc_symbol (completion_tracker &tracker,
   if ((method[0] != '-') && (method[0] != '+'))
     return;
 
-  if (sym_text[0] == '[')
+  if (text[0] == '[')
     /* Complete on shortened method method.  */
     completion_list_add_name (tracker, language_objc,
                              method + 1,
                              lookup_name,
-                             sym_text, sym_text_len, text, word);
+                             text, word);
 
   while ((strlen (method) + 1) >= tmplen)
     {
@@ -4795,12 +4791,10 @@ completion_list_objc_symbol (completion_tracker &tracker,
       tmp[category - method] = ' ';
       memcpy (tmp + (category - method) + 1, selector, strlen (selector) + 1);
       completion_list_add_name (tracker, language_objc, tmp,
-                               lookup_name,
-                               sym_text, sym_text_len, text, word);
-      if (sym_text[0] == '[')
+                               lookup_name, text, word);
+      if (text[0] == '[')
        completion_list_add_name (tracker, language_objc, tmp + 1,
-                                 lookup_name,
-                                 sym_text, sym_text_len, text, word);
+                                 lookup_name, text, word);
     }
 
   if (selector != NULL)
@@ -4812,8 +4806,7 @@ completion_list_objc_symbol (completion_tracker &tracker,
        *tmp2 = '\0';
 
       completion_list_add_name (tracker, language_objc, tmp,
-                               lookup_name,
-                               sym_text, sym_text_len, text, word);
+                               lookup_name, text, word);
     }
 }
 
@@ -4867,7 +4860,6 @@ static void
 completion_list_add_fields (completion_tracker &tracker,
                            struct symbol *sym,
                            const lookup_name_info &lookup_name,
-                           const char *sym_text, int sym_text_len,
                            const char *text, const char *word)
 {
   if (SYMBOL_CLASS (sym) == LOC_TYPEDEF)
@@ -4881,8 +4873,7 @@ completion_list_add_fields (completion_tracker &tracker,
          if (TYPE_FIELD_NAME (t, j))
            completion_list_add_name (tracker, SYMBOL_LANGUAGE (sym),
                                      TYPE_FIELD_NAME (t, j),
-                                     lookup_name,
-                                     sym_text, sym_text_len, text, word);
+                                     lookup_name, text, word);
     }
 }
 
@@ -4892,7 +4883,6 @@ static void
 add_symtab_completions (struct compunit_symtab *cust,
                        completion_tracker &tracker,
                        const lookup_name_info &lookup_name,
-                       const char *sym_text, int sym_text_len,
                        const char *text, const char *word,
                        enum type_code code)
 {
@@ -4915,7 +4905,6 @@ add_symtab_completions (struct compunit_symtab *cust,
                  && TYPE_CODE (SYMBOL_TYPE (sym)) == code))
            completion_list_add_symbol (tracker, sym,
                                        lookup_name,
-                                       sym_text, sym_text_len,
                                        text, word);
        }
     }
@@ -4941,8 +4930,6 @@ default_collect_symbol_completion_matches_break_on
   struct block_iterator iter;
   /* The symbol we are completing on.  Points in same buffer as text.  */
   const char *sym_text;
-  /* Length of sym_text.  */
-  int sym_text_len;
 
   /* Now look for the symbol we are supposed to complete on.  */
   if (mode == complete_symbol_mode::LINESPEC)
@@ -4998,10 +4985,7 @@ default_collect_symbol_completion_matches_break_on
       }
   }
 
-  sym_text_len = strlen (sym_text);
-
-  lookup_name_info lookup_name (std::string (sym_text, sym_text_len),
-                               name_match_type, true);
+  lookup_name_info lookup_name (sym_text, name_match_type, true);
 
   /* At this point scan through the misc symbol vectors and add each
      symbol you find to the list.  Eventually we want to ignore
@@ -5015,19 +4999,17 @@ default_collect_symbol_completion_matches_break_on
          QUIT;
 
          completion_list_add_msymbol (tracker, msymbol, lookup_name,
-                                      sym_text, sym_text_len,
-                                      text, word);
+                                      sym_text, word);
 
          completion_list_objc_symbol (tracker, msymbol, lookup_name,
-                                      sym_text, sym_text_len, text,
-                                      word);
+                                      sym_text, word);
        }
     }
 
   /* Add completions for all currently loaded symbol tables.  */
   ALL_COMPUNITS (objfile, cust)
     add_symtab_completions (cust, tracker, lookup_name,
-                           sym_text, sym_text_len, text, word, code);
+                           sym_text, word, code);
 
   /* Look through the partial symtabs for all symbols which begin by
      matching SYM_TEXT.  Expand all CUs that you find to the list.  */
@@ -5038,8 +5020,7 @@ default_collect_symbol_completion_matches_break_on
                             {
                               add_symtab_completions (symtab,
                                                       tracker, lookup_name,
-                                                      sym_text, sym_text_len,
-                                                      text, word, code);
+                                                      sym_text, word, code);
                             },
                           ALL_DOMAIN);
 
@@ -5061,17 +5042,14 @@ default_collect_symbol_completion_matches_break_on
            if (code == TYPE_CODE_UNDEF)
              {
                completion_list_add_symbol (tracker, sym, lookup_name,
-                                           sym_text, sym_text_len, text,
-                                           word);
+                                           sym_text, word);
                completion_list_add_fields (tracker, sym, lookup_name,
-                                           sym_text, sym_text_len, text,
-                                           word);
+                                           sym_text, word);
              }
            else if (SYMBOL_DOMAIN (sym) == STRUCT_DOMAIN
                     && TYPE_CODE (SYMBOL_TYPE (sym)) == code)
              completion_list_add_symbol (tracker, sym, lookup_name,
-                                         sym_text, sym_text_len, text,
-                                         word);
+                                         sym_text, word);
          }
 
        /* Stop when we encounter an enclosing function.  Do not stop for
@@ -5089,12 +5067,12 @@ default_collect_symbol_completion_matches_break_on
       if (surrounding_static_block != NULL)
        ALL_BLOCK_SYMBOLS (surrounding_static_block, iter, sym)
          completion_list_add_fields (tracker, sym, lookup_name,
-                                     sym_text, sym_text_len, text, word);
+                                     sym_text, word);
 
       if (surrounding_global_block != NULL)
        ALL_BLOCK_SYMBOLS (surrounding_global_block, iter, sym)
          completion_list_add_fields (tracker, sym, lookup_name,
-                                     sym_text, sym_text_len, text, word);
+                                     sym_text, word);
     }
 
   /* Skip macros if we are completing a struct tag -- arguable but
@@ -5110,12 +5088,8 @@ default_collect_symbol_completion_matches_break_on
                                 macro_source_file *,
                                 int)
        {
-         completion_list_add_name (tracker,
-                                   language_c,
-                                   macro_name,
-                                   lookup_name,
-                                   sym_text, sym_text_len,
-                                   text, word);
+         completion_list_add_name (tracker, language_c, macro_name,
+                                   lookup_name, sym_text, word);
        };
 
       /* Add any macros visible in the default scope.  Note that this
@@ -5197,8 +5171,6 @@ collect_file_symbol_completion_matches (completion_tracker &tracker,
 {
   /* The symbol we are completing on.  Points in same buffer as text.  */
   const char *sym_text;
-  /* Length of sym_text.  */
-  int sym_text_len;
 
   /* Now look for the symbol we are supposed to complete on.
      FIXME: This should be language-specific.  */
@@ -5246,10 +5218,7 @@ collect_file_symbol_completion_matches (completion_tracker &tracker,
       }
   }
 
-  sym_text_len = strlen (sym_text);
-
-  lookup_name_info lookup_name (std::string (sym_text, sym_text_len),
-                               name_match_type, true);
+  lookup_name_info lookup_name (sym_text, name_match_type, true);
 
   /* Go through symtabs for SRCFILE and check the externs and statics
      for symbols which match.  */
@@ -5257,8 +5226,7 @@ collect_file_symbol_completion_matches (completion_tracker &tracker,
     {
       add_symtab_completions (SYMTAB_COMPUNIT (s),
                              tracker, lookup_name,
-                             sym_text, sym_text_len,
-                             text, word, TYPE_CODE_UNDEF);
+                             sym_text, word, TYPE_CODE_UNDEF);
       return false;
     });
 }
index 8cd3496..868c435 100644 (file)
@@ -2004,7 +2004,6 @@ void completion_list_add_name (completion_tracker &tracker,
                               language symbol_language,
                               const char *symname,
                               const lookup_name_info &lookup_name,
-                              const char *sym_text, int sym_text_len,
                               const char *text, const char *word);
 
 #endif /* !defined(SYMTAB_H) */