This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
[PATCH 08/40] completion_list_add_name wrapper functions
- From: Pedro Alves <palves at redhat dot com>
- To: gdb-patches at sourceware dot org
- Date: Fri, 2 Jun 2017 13:22:06 +0100
- Subject: [PATCH 08/40] completion_list_add_name wrapper functions
- Authentication-results: sourceware.org; auth=none
- Authentication-results: ext-mx07.extmail.prod.ext.phx2.redhat.com; dmarc=none (p=none dis=none) header.from=redhat.com
- Authentication-results: ext-mx07.extmail.prod.ext.phx2.redhat.com; spf=pass smtp.mailfrom=palves at redhat dot com
- Dkim-filter: OpenDKIM Filter v2.11.0 mx1.redhat.com 76DBDC0467DB
- Dmarc-filter: OpenDMARC Filter v1.3.2 mx1.redhat.com 76DBDC0467DB
- References: <1496406158-12663-1-git-send-email-palves@redhat.com>
I've had to adjust these macros numerous times while working on this
series, adding/removing parameters while experimenting with designs.
At some point, I got fed up with fighting the preprocessor, and
decided to make them proper functions.
gdb/ChangeLog:
yyyy-mm-dd Pedro Alves <palves@redhat.com>
* symtab.c (COMPLETION_LIST_ADD_SYMBOL)
(MCOMPLETION_LIST_ADD_SYMBOL): Delete macros, replace with ...
(completion_list_add_symbol, completion_list_add_msymbol):
... these new functions.
(add_symtab_completions)
(default_make_symbol_completion_list_break_on_1): Adjust.
---
gdb/symtab.c | 40 ++++++++++++++++++++++++++--------------
1 file changed, 26 insertions(+), 14 deletions(-)
diff --git a/gdb/symtab.c b/gdb/symtab.c
index 4414d71..183164d 100644
--- a/gdb/symtab.c
+++ b/gdb/symtab.c
@@ -4779,18 +4779,8 @@ do_free_completion_list (void *list)
free_completion_list ((VEC (char_ptr) **) list);
}
-/* Helper routine for make_symbol_completion_list. */
-
static VEC (char_ptr) *return_val;
-#define COMPLETION_LIST_ADD_SYMBOL(symbol, sym_text, len, text, word) \
- completion_list_add_name \
- (SYMBOL_NATURAL_NAME (symbol), (sym_text), (len), (text), (word))
-
-#define MCOMPLETION_LIST_ADD_SYMBOL(symbol, sym_text, len, text, word) \
- completion_list_add_name \
- (MSYMBOL_NATURAL_NAME (symbol), (sym_text), (len), (text), (word))
-
/* Tracker for how many unique completions have been generated. Used
to terminate completion list generation early if the list has grown
to a size so large as to be useless. This helps avoid GDB seeming
@@ -4860,6 +4850,28 @@ completion_list_add_name (const char *symname,
}
}
+/* completion_list_add_name wrapper for struct symbol. */
+
+static void
+completion_list_add_symbol (symbol *sym,
+ const char *sym_text, int sym_text_len,
+ const char *text, const char *word)
+{
+ completion_list_add_name (SYMBOL_NATURAL_NAME (sym),
+ sym_text, sym_text_len, text, word);
+}
+
+/* completion_list_add_name wrapper for struct minimal_symbol. */
+
+static void
+completion_list_add_msymbol (minimal_symbol *sym,
+ const char *sym_text, int sym_text_len,
+ const char *text, const char *word)
+{
+ completion_list_add_name (MSYMBOL_NATURAL_NAME (sym),
+ sym_text, sym_text_len, text, word);
+}
+
/* ObjC: In case we are completing on a selector, look as the msymbol
again and feed all the selectors into the mill. */
@@ -5010,7 +5022,7 @@ add_symtab_completions (struct compunit_symtab *cust,
if (code == TYPE_CODE_UNDEF
|| (SYMBOL_DOMAIN (sym) == STRUCT_DOMAIN
&& TYPE_CODE (SYMBOL_TYPE (sym)) == code))
- COMPLETION_LIST_ADD_SYMBOL (sym,
+ completion_list_add_symbol (sym,
sym_text, sym_text_len,
text, word);
}
@@ -5121,7 +5133,7 @@ default_make_symbol_completion_list_break_on_1 (const char *text,
ALL_MSYMBOLS (objfile, msymbol)
{
QUIT;
- MCOMPLETION_LIST_ADD_SYMBOL (msymbol, sym_text, sym_text_len, text,
+ completion_list_add_msymbol (msymbol, sym_text, sym_text_len, text,
word);
completion_list_objc_symbol (msymbol, sym_text, sym_text_len, text,
@@ -5168,14 +5180,14 @@ default_make_symbol_completion_list_break_on_1 (const char *text,
{
if (code == TYPE_CODE_UNDEF)
{
- COMPLETION_LIST_ADD_SYMBOL (sym, sym_text, sym_text_len, text,
+ completion_list_add_symbol (sym, sym_text, sym_text_len, text,
word);
completion_list_add_fields (sym, sym_text, sym_text_len, text,
word);
}
else if (SYMBOL_DOMAIN (sym) == STRUCT_DOMAIN
&& TYPE_CODE (SYMBOL_TYPE (sym)) == code)
- COMPLETION_LIST_ADD_SYMBOL (sym, sym_text, sym_text_len, text,
+ completion_list_add_symbol (sym, sym_text, sym_text_len, text,
word);
}
--
2.5.5