From 1b0261195e3f11932c0f5657a74028f5814168eb Mon Sep 17 00:00:00 2001 From: Pedro Alves Date: Wed, 8 Nov 2017 14:22:34 +0000 Subject: [PATCH] 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 * 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 | 15 +++++++++ gdb/ada-lang.c | 18 +++------- gdb/symtab.c | 90 ++++++++++++++++---------------------------------- gdb/symtab.h | 1 - 4 files changed, 49 insertions(+), 75 deletions(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 8abe4557af2..31508264bc9 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,18 @@ +2017-11-08 Pedro Alves + + * 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 * Makefile.in (SUBDIR_UNITTESTS_SRCS): Add diff --git a/gdb/ada-lang.c b/gdb/ada-lang.c index 7ec19d29a63..9ebd25e16ae 100644 --- a/gdb/ada-lang.c +++ b/gdb/ada-lang.c @@ -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); } } diff --git a/gdb/symtab.c b/gdb/symtab.c index 2d09f9480b0..eb4e30d4556 100644 --- a/gdb/symtab.c +++ b/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; }); } diff --git a/gdb/symtab.h b/gdb/symtab.h index 8cd3496c530..868c435377d 100644 --- a/gdb/symtab.h +++ b/gdb/symtab.h @@ -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) */ -- 2.30.2