[08/40] completion_list_add_name wrapper functions

Message ID 1496406158-12663-9-git-send-email-palves@redhat.com
State New, archived
Headers

Commit Message

Pedro Alves June 2, 2017, 12:22 p.m. UTC
  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(-)
  

Comments

Yao Qi June 27, 2017, 12:56 p.m. UTC | #1
Pedro Alves <palves@redhat.com> writes:

> 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.

It is obvious.  Patch is good to me.
  
Pedro Alves June 27, 2017, 3:35 p.m. UTC | #2
On 06/27/2017 01:56 PM, Yao Qi wrote:

>> 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.
> 
> It is obvious.  Patch is good to me.
> 

Pushed in too.

Thanks,
Pedro Alves
  

Patch

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);
 	  }