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:
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.
This commit is contained in:
Pedro Alves 2017-11-08 14:22:34 +00:00
parent c62446b12b
commit 1b0261195e
4 changed files with 49 additions and 75 deletions

View File

@ -1,3 +1,18 @@
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> 2017-11-08 Pedro Alves <palves@redhat.com>
* Makefile.in (SUBDIR_UNITTESTS_SRCS): Add * Makefile.in (SUBDIR_UNITTESTS_SRCS): Add

View File

@ -6443,7 +6443,6 @@ ada_collect_symbol_completion_matches (completion_tracker &tracker,
const char *text, const char *word, const char *text, const char *word,
enum type_code code) enum type_code code)
{ {
int text_len;
struct symbol *sym; struct symbol *sym;
struct compunit_symtab *s; struct compunit_symtab *s;
struct minimal_symbol *msymbol; struct minimal_symbol *msymbol;
@ -6455,10 +6454,7 @@ ada_collect_symbol_completion_matches (completion_tracker &tracker,
gdb_assert (code == TYPE_CODE_UNDEF); gdb_assert (code == TYPE_CODE_UNDEF);
text_len = strlen (text); lookup_name_info lookup_name (text, name_match_type, true);
lookup_name_info lookup_name (std::string (text, text_len),
name_match_type, true);
/* First, look at the partial symtab symbols. */ /* First, look at the partial symtab symbols. */
expand_symtabs_matching (NULL, expand_symtabs_matching (NULL,
@ -6479,8 +6475,7 @@ ada_collect_symbol_completion_matches (completion_tracker &tracker,
completion_list_add_name (tracker, completion_list_add_name (tracker,
MSYMBOL_LANGUAGE (msymbol), MSYMBOL_LANGUAGE (msymbol),
MSYMBOL_LINKAGE_NAME (msymbol), MSYMBOL_LINKAGE_NAME (msymbol),
lookup_name, lookup_name, text, word);
text, text_len, text, word);
} }
/* Search upwards from currently selected frame (so that we can /* 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, completion_list_add_name (tracker,
SYMBOL_LANGUAGE (sym), SYMBOL_LANGUAGE (sym),
SYMBOL_LINKAGE_NAME (sym), SYMBOL_LINKAGE_NAME (sym),
lookup_name, lookup_name, text, word);
text, text_len, text, word);
} }
} }
@ -6513,8 +6507,7 @@ ada_collect_symbol_completion_matches (completion_tracker &tracker,
completion_list_add_name (tracker, completion_list_add_name (tracker,
SYMBOL_LANGUAGE (sym), SYMBOL_LANGUAGE (sym),
SYMBOL_LINKAGE_NAME (sym), SYMBOL_LINKAGE_NAME (sym),
lookup_name, lookup_name, text, word);
text, text_len, text, word);
} }
} }
@ -6530,8 +6523,7 @@ ada_collect_symbol_completion_matches (completion_tracker &tracker,
completion_list_add_name (tracker, completion_list_add_name (tracker,
SYMBOL_LANGUAGE (sym), SYMBOL_LANGUAGE (sym),
SYMBOL_LINKAGE_NAME (sym), SYMBOL_LINKAGE_NAME (sym),
lookup_name, lookup_name, text, word);
text, text_len, text, word);
} }
} }

View File

@ -4669,7 +4669,6 @@ completion_list_add_name (completion_tracker &tracker,
language symbol_language, language symbol_language,
const char *symname, const char *symname,
const lookup_name_info &lookup_name, const lookup_name_info &lookup_name,
const char *sym_text, int sym_text_len,
const char *text, const char *word) const char *text, const char *word)
{ {
completion_match_result &match_res completion_match_result &match_res
@ -4691,23 +4690,23 @@ completion_list_add_name (completion_tracker &tracker,
{ {
char *newobj; char *newobj;
if (word == sym_text) if (word == text)
{ {
newobj = (char *) xmalloc (strlen (symname) + 5); newobj = (char *) xmalloc (strlen (symname) + 5);
strcpy (newobj, symname); strcpy (newobj, symname);
} }
else if (word > sym_text) else if (word > text)
{ {
/* Return some portion of symname. */ /* Return some portion of symname. */
newobj = (char *) xmalloc (strlen (symname) + 5); newobj = (char *) xmalloc (strlen (symname) + 5);
strcpy (newobj, symname + (word - sym_text)); strcpy (newobj, symname + (word - text));
} }
else else
{ {
/* Return some of SYM_TEXT plus symname. */ /* Return some of SYM_TEXT plus symname. */
newobj = (char *) xmalloc (strlen (symname) + (sym_text - word) + 5); newobj = (char *) xmalloc (strlen (symname) + (text - word) + 5);
strncpy (newobj, word, sym_text - word); strncpy (newobj, word, text - word);
newobj[sym_text - word] = '\0'; newobj[text - word] = '\0';
strcat (newobj, symname); strcat (newobj, symname);
} }
@ -4723,12 +4722,11 @@ static void
completion_list_add_symbol (completion_tracker &tracker, completion_list_add_symbol (completion_tracker &tracker,
symbol *sym, symbol *sym,
const lookup_name_info &lookup_name, const lookup_name_info &lookup_name,
const char *sym_text, int sym_text_len,
const char *text, const char *word) const char *text, const char *word)
{ {
completion_list_add_name (tracker, SYMBOL_LANGUAGE (sym), completion_list_add_name (tracker, SYMBOL_LANGUAGE (sym),
SYMBOL_NATURAL_NAME (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. */ /* completion_list_add_name wrapper for struct minimal_symbol. */
@ -4737,12 +4735,11 @@ static void
completion_list_add_msymbol (completion_tracker &tracker, completion_list_add_msymbol (completion_tracker &tracker,
minimal_symbol *sym, minimal_symbol *sym,
const lookup_name_info &lookup_name, const lookup_name_info &lookup_name,
const char *sym_text, int sym_text_len,
const char *text, const char *word) const char *text, const char *word)
{ {
completion_list_add_name (tracker, MSYMBOL_LANGUAGE (sym), completion_list_add_name (tracker, MSYMBOL_LANGUAGE (sym),
MSYMBOL_NATURAL_NAME (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, completion_list_objc_symbol (completion_tracker &tracker,
struct minimal_symbol *msymbol, struct minimal_symbol *msymbol,
const lookup_name_info &lookup_name, const lookup_name_info &lookup_name,
const char *sym_text, int sym_text_len,
const char *text, const char *word) const char *text, const char *word)
{ {
static char *tmp = NULL; static char *tmp = NULL;
@ -4768,12 +4764,12 @@ completion_list_objc_symbol (completion_tracker &tracker,
if ((method[0] != '-') && (method[0] != '+')) if ((method[0] != '-') && (method[0] != '+'))
return; return;
if (sym_text[0] == '[') if (text[0] == '[')
/* Complete on shortened method method. */ /* Complete on shortened method method. */
completion_list_add_name (tracker, language_objc, completion_list_add_name (tracker, language_objc,
method + 1, method + 1,
lookup_name, lookup_name,
sym_text, sym_text_len, text, word); text, word);
while ((strlen (method) + 1) >= tmplen) while ((strlen (method) + 1) >= tmplen)
{ {
@ -4795,12 +4791,10 @@ completion_list_objc_symbol (completion_tracker &tracker,
tmp[category - method] = ' '; tmp[category - method] = ' ';
memcpy (tmp + (category - method) + 1, selector, strlen (selector) + 1); memcpy (tmp + (category - method) + 1, selector, strlen (selector) + 1);
completion_list_add_name (tracker, language_objc, tmp, completion_list_add_name (tracker, language_objc, tmp,
lookup_name, lookup_name, text, word);
sym_text, sym_text_len, text, word); if (text[0] == '[')
if (sym_text[0] == '[')
completion_list_add_name (tracker, language_objc, tmp + 1, completion_list_add_name (tracker, language_objc, tmp + 1,
lookup_name, lookup_name, text, word);
sym_text, sym_text_len, text, word);
} }
if (selector != NULL) if (selector != NULL)
@ -4812,8 +4806,7 @@ completion_list_objc_symbol (completion_tracker &tracker,
*tmp2 = '\0'; *tmp2 = '\0';
completion_list_add_name (tracker, language_objc, tmp, completion_list_add_name (tracker, language_objc, tmp,
lookup_name, lookup_name, text, word);
sym_text, sym_text_len, text, word);
} }
} }
@ -4867,7 +4860,6 @@ static void
completion_list_add_fields (completion_tracker &tracker, completion_list_add_fields (completion_tracker &tracker,
struct symbol *sym, struct symbol *sym,
const lookup_name_info &lookup_name, const lookup_name_info &lookup_name,
const char *sym_text, int sym_text_len,
const char *text, const char *word) const char *text, const char *word)
{ {
if (SYMBOL_CLASS (sym) == LOC_TYPEDEF) if (SYMBOL_CLASS (sym) == LOC_TYPEDEF)
@ -4881,8 +4873,7 @@ completion_list_add_fields (completion_tracker &tracker,
if (TYPE_FIELD_NAME (t, j)) if (TYPE_FIELD_NAME (t, j))
completion_list_add_name (tracker, SYMBOL_LANGUAGE (sym), completion_list_add_name (tracker, SYMBOL_LANGUAGE (sym),
TYPE_FIELD_NAME (t, j), TYPE_FIELD_NAME (t, j),
lookup_name, lookup_name, text, word);
sym_text, sym_text_len, text, word);
} }
} }
@ -4892,7 +4883,6 @@ static void
add_symtab_completions (struct compunit_symtab *cust, add_symtab_completions (struct compunit_symtab *cust,
completion_tracker &tracker, completion_tracker &tracker,
const lookup_name_info &lookup_name, const lookup_name_info &lookup_name,
const char *sym_text, int sym_text_len,
const char *text, const char *word, const char *text, const char *word,
enum type_code code) enum type_code code)
{ {
@ -4915,7 +4905,6 @@ add_symtab_completions (struct compunit_symtab *cust,
&& TYPE_CODE (SYMBOL_TYPE (sym)) == code)) && TYPE_CODE (SYMBOL_TYPE (sym)) == code))
completion_list_add_symbol (tracker, sym, completion_list_add_symbol (tracker, sym,
lookup_name, lookup_name,
sym_text, sym_text_len,
text, word); text, word);
} }
} }
@ -4941,8 +4930,6 @@ default_collect_symbol_completion_matches_break_on
struct block_iterator iter; struct block_iterator iter;
/* The symbol we are completing on. Points in same buffer as text. */ /* The symbol we are completing on. Points in same buffer as text. */
const char *sym_text; const char *sym_text;
/* Length of sym_text. */
int sym_text_len;
/* Now look for the symbol we are supposed to complete on. */ /* Now look for the symbol we are supposed to complete on. */
if (mode == complete_symbol_mode::LINESPEC) 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 (sym_text, name_match_type, true);
lookup_name_info lookup_name (std::string (sym_text, sym_text_len),
name_match_type, true);
/* At this point scan through the misc symbol vectors and add each /* At this point scan through the misc symbol vectors and add each
symbol you find to the list. Eventually we want to ignore symbol you find to the list. Eventually we want to ignore
@ -5015,19 +4999,17 @@ default_collect_symbol_completion_matches_break_on
QUIT; QUIT;
completion_list_add_msymbol (tracker, msymbol, lookup_name, completion_list_add_msymbol (tracker, msymbol, lookup_name,
sym_text, sym_text_len, sym_text, word);
text, word);
completion_list_objc_symbol (tracker, msymbol, lookup_name, completion_list_objc_symbol (tracker, msymbol, lookup_name,
sym_text, sym_text_len, text, sym_text, word);
word);
} }
} }
/* Add completions for all currently loaded symbol tables. */ /* Add completions for all currently loaded symbol tables. */
ALL_COMPUNITS (objfile, cust) ALL_COMPUNITS (objfile, cust)
add_symtab_completions (cust, tracker, lookup_name, 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 /* Look through the partial symtabs for all symbols which begin by
matching SYM_TEXT. Expand all CUs that you find to the list. */ 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, add_symtab_completions (symtab,
tracker, lookup_name, tracker, lookup_name,
sym_text, sym_text_len, sym_text, word, code);
text, word, code);
}, },
ALL_DOMAIN); ALL_DOMAIN);
@ -5061,17 +5042,14 @@ default_collect_symbol_completion_matches_break_on
if (code == TYPE_CODE_UNDEF) if (code == TYPE_CODE_UNDEF)
{ {
completion_list_add_symbol (tracker, sym, lookup_name, completion_list_add_symbol (tracker, sym, lookup_name,
sym_text, sym_text_len, text, sym_text, word);
word);
completion_list_add_fields (tracker, sym, lookup_name, completion_list_add_fields (tracker, sym, lookup_name,
sym_text, sym_text_len, text, sym_text, word);
word);
} }
else if (SYMBOL_DOMAIN (sym) == STRUCT_DOMAIN else if (SYMBOL_DOMAIN (sym) == STRUCT_DOMAIN
&& TYPE_CODE (SYMBOL_TYPE (sym)) == code) && TYPE_CODE (SYMBOL_TYPE (sym)) == code)
completion_list_add_symbol (tracker, sym, lookup_name, completion_list_add_symbol (tracker, sym, lookup_name,
sym_text, sym_text_len, text, sym_text, word);
word);
} }
/* Stop when we encounter an enclosing function. Do not stop for /* 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) if (surrounding_static_block != NULL)
ALL_BLOCK_SYMBOLS (surrounding_static_block, iter, sym) ALL_BLOCK_SYMBOLS (surrounding_static_block, iter, sym)
completion_list_add_fields (tracker, sym, lookup_name, completion_list_add_fields (tracker, sym, lookup_name,
sym_text, sym_text_len, text, word); sym_text, word);
if (surrounding_global_block != NULL) if (surrounding_global_block != NULL)
ALL_BLOCK_SYMBOLS (surrounding_global_block, iter, sym) ALL_BLOCK_SYMBOLS (surrounding_global_block, iter, sym)
completion_list_add_fields (tracker, sym, lookup_name, 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 /* 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 *, macro_source_file *,
int) int)
{ {
completion_list_add_name (tracker, completion_list_add_name (tracker, language_c, macro_name,
language_c, lookup_name, sym_text, word);
macro_name,
lookup_name,
sym_text, sym_text_len,
text, word);
}; };
/* Add any macros visible in the default scope. Note that this /* 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. */ /* The symbol we are completing on. Points in same buffer as text. */
const char *sym_text; const char *sym_text;
/* Length of sym_text. */
int sym_text_len;
/* Now look for the symbol we are supposed to complete on. /* Now look for the symbol we are supposed to complete on.
FIXME: This should be language-specific. */ 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 (sym_text, name_match_type, true);
lookup_name_info lookup_name (std::string (sym_text, sym_text_len),
name_match_type, true);
/* Go through symtabs for SRCFILE and check the externs and statics /* Go through symtabs for SRCFILE and check the externs and statics
for symbols which match. */ for symbols which match. */
@ -5257,8 +5226,7 @@ collect_file_symbol_completion_matches (completion_tracker &tracker,
{ {
add_symtab_completions (SYMTAB_COMPUNIT (s), add_symtab_completions (SYMTAB_COMPUNIT (s),
tracker, lookup_name, tracker, lookup_name,
sym_text, sym_text_len, sym_text, word, TYPE_CODE_UNDEF);
text, word, TYPE_CODE_UNDEF);
return false; return false;
}); });
} }

View File

@ -2004,7 +2004,6 @@ void completion_list_add_name (completion_tracker &tracker,
language symbol_language, language symbol_language,
const char *symname, const char *symname,
const lookup_name_info &lookup_name, const lookup_name_info &lookup_name,
const char *sym_text, int sym_text_len,
const char *text, const char *word); const char *text, const char *word);
#endif /* !defined(SYMTAB_H) */ #endif /* !defined(SYMTAB_H) */