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:
parent
c62446b12b
commit
1b0261195e
|
@ -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>
|
||||
|
||||
* Makefile.in (SUBDIR_UNITTESTS_SRCS): Add
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
90
gdb/symtab.c
90
gdb/symtab.c
|
@ -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;
|
||||
});
|
||||
}
|
||||
|
|
|
@ -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) */
|
||||
|
|
Loading…
Reference in New Issue