This is the mail archive of the gdb-patches@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[PATCH 29/40] Simplify completion_list_add_name | remove sym_text / sym_text_len


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:
yyyy-mm-dd  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/ada-lang.c | 18 ++++--------
 gdb/symtab.c   | 90 +++++++++++++++++++---------------------------------------
 gdb/symtab.h   |  1 -
 3 files changed, 34 insertions(+), 75 deletions(-)

diff --git a/gdb/ada-lang.c b/gdb/ada-lang.c
index 50f7581..11ff719 100644
--- a/gdb/ada-lang.c
+++ b/gdb/ada-lang.c
@@ -6432,7 +6432,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;
@@ -6444,10 +6443,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,
@@ -6468,8 +6464,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
@@ -6485,8 +6480,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);
       }
     }
 
@@ -6502,8 +6496,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);
     }
   }
 
@@ -6519,8 +6512,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);
     }
   }
 
diff --git a/gdb/symtab.c b/gdb/symtab.c
index 68b8af5..c5cd9ec 100644
--- a/gdb/symtab.c
+++ b/gdb/symtab.c
@@ -4819,7 +4819,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
@@ -4841,23 +4840,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);
       }
 
@@ -4873,12 +4872,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.  */
@@ -4887,12 +4885,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);
 }
 
 
@@ -4903,7 +4900,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;
@@ -4918,12 +4914,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)
     {
@@ -4945,12 +4941,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)
@@ -4962,8 +4956,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);
     }
 }
 
@@ -5017,7 +5010,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)
@@ -5031,8 +5023,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);
     }
 }
 
@@ -5042,7 +5033,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)
 {
@@ -5065,7 +5055,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);
 	}
     }
@@ -5091,8 +5080,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;
   struct cleanup *cleanups;
 
   /* Now look for the symbol we are supposed to complete on.  */
@@ -5149,10 +5136,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
@@ -5166,19 +5150,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.  */
@@ -5189,8 +5171,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);
 
@@ -5212,17 +5193,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
@@ -5240,12 +5218,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
@@ -5261,12 +5239,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
@@ -5349,8 +5323,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.  */
@@ -5398,10 +5370,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.  */
@@ -5409,8 +5378,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;
     });
 }
diff --git a/gdb/symtab.h b/gdb/symtab.h
index a452804..d68eed8 100644
--- a/gdb/symtab.h
+++ b/gdb/symtab.h
@@ -1966,7 +1966,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) */
-- 
2.5.5


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]