From bb4142cf49651ddcb0e00f6aaf451272c4c9977d Mon Sep 17 00:00:00 2001 From: Doug Evans Date: Tue, 14 Jan 2014 18:36:33 -0800 Subject: [PATCH] psymtab cleanup patch 3/3 This last patch removes "partial" from the names of expand_partial_symbol_names and map_partial_symbol_filenames. It also renames expand_partial_symbol_names to match the struct quick_symbol_functions "method" that it wraps: expand_symtabs_matching. This patch also adds two parameters to expand_symtabs_matching so that it can fully wrap the underlying quick_symbol_functions method. This makes it usable in more places. I thought of having a cover function that still had the same signature as the old expand_partial_symbol_names function, but I couldn't think of a good name, and it wasn't clear it was worth it anyway. * symfile.h (expand_symtabs_matching): Renamed from expand_partial_symbol_names. Update prototype. (map_symbol_filenames): Renamed from map_partial_symbol_filenames. * symfile.c (expand_symtabs_matching): Renamed from expand_partial_symbol_names. New args file_matcher, kind. Rename arg fun to symbol_matcher. (map_symbol_filenames): Renamed from map_partial_symbol_filenames. * ada-lang.c (ada_complete_symbol_matcher): Renamed from ada_expand_partial_symbol_name. (ada_make_symbol_completion_list): Update to call expand_symtabs_matching. (ada_add_global_exceptions): Call expand_symtabs_matching. * mi/mi-cmd-file.c (mi_cmd_file_list_exec_source_files): Update to call map_symbol_filenames. * symtab.c (sources_info): Update to call map_symbol_filenames. (search_symbols): Call expand_symtabs_matching. (symbol_completion_matcher): Renamed from expand_partial_symbol_name. (default_make_symbol_completion_list_break_on): Update to call expand_symtabs_matching. (make_source_files_completion_list): Update to call map_symbol_filenames. --- gdb/ChangeLog | 24 ++++++++++++++++++++++++ gdb/ada-lang.c | 17 ++++++++--------- gdb/mi/mi-cmd-file.c | 4 ++-- gdb/symfile.c | 15 +++++++++------ gdb/symfile.h | 9 +++++---- gdb/symtab.c | 33 ++++++++++++++------------------- 6 files changed, 62 insertions(+), 40 deletions(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 1ea6dac..6ca3655 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,5 +1,29 @@ 2014-01-14 Doug Evans + * symfile.h (expand_symtabs_matching): Renamed from + expand_partial_symbol_names. Update prototype. + (map_symbol_filenames): Renamed from map_partial_symbol_filenames. + * symfile.c (expand_symtabs_matching): Renamed from + expand_partial_symbol_names. New args file_matcher, kind. + Rename arg fun to symbol_matcher. + (map_symbol_filenames): Renamed from map_partial_symbol_filenames. + * ada-lang.c (ada_complete_symbol_matcher): Renamed from + ada_expand_partial_symbol_name. + (ada_make_symbol_completion_list): Update to call + expand_symtabs_matching. + (ada_add_global_exceptions): Call expand_symtabs_matching. + * mi/mi-cmd-file.c (mi_cmd_file_list_exec_source_files): Update to + call map_symbol_filenames. + * symtab.c (sources_info): Update to call map_symbol_filenames. + (search_symbols): Call expand_symtabs_matching. + (symbol_completion_matcher): Renamed from expand_partial_symbol_name. + (default_make_symbol_completion_list_break_on): Update to call + expand_symtabs_matching. + (make_source_files_completion_list): Update to call + map_symbol_filenames. + +2014-01-14 Doug Evans + * symfile.h (expand_symtabs_file_matcher_ftype): New typedef. (expand_symtabs_symbol_matcher_ftype): New typedef. (quick_symbol_functions.expand_symtabs_matching): Update to use. diff --git a/gdb/ada-lang.c b/gdb/ada-lang.c index b3224f3..a1b638c 100644 --- a/gdb/ada-lang.c +++ b/gdb/ada-lang.c @@ -5866,7 +5866,7 @@ symbol_completion_add (VEC(char_ptr) **sv, } /* An object of this type is passed as the user_data argument to the - expand_partial_symbol_names method. */ + expand_symtabs_matching method. */ struct add_partial_datum { VEC(char_ptr) **completions; @@ -5878,9 +5878,10 @@ struct add_partial_datum int encoded; }; -/* A callback for expand_partial_symbol_names. */ +/* A callback for expand_symtabs_matching. */ + static int -ada_expand_partial_symbol_name (const char *name, void *user_data) +ada_complete_symbol_matcher (const char *name, void *user_data) { struct add_partial_datum *data = user_data; @@ -5946,7 +5947,8 @@ ada_make_symbol_completion_list (const char *text0, const char *word, data.word = word; data.wild_match = wild_match_p; data.encoded = encoded_p; - expand_partial_symbol_names (ada_expand_partial_symbol_name, &data); + expand_symtabs_matching (NULL, ada_complete_symbol_matcher, ALL_DOMAIN, + &data); } /* At this point scan through the misc symbol vectors and add each @@ -12513,11 +12515,8 @@ ada_add_global_exceptions (regex_t *preg, VEC(ada_exc_info) **exceptions) struct objfile *objfile; struct symtab *s; - ALL_OBJFILES (objfile) - if (objfile->sf) - objfile->sf->qf->expand_symtabs_matching - (objfile, NULL, ada_exc_search_name_matches, - VARIABLES_DOMAIN, preg); + expand_symtabs_matching (NULL, ada_exc_search_name_matches, + VARIABLES_DOMAIN, preg); ALL_PRIMARY_SYMTABS (objfile, s) { diff --git a/gdb/mi/mi-cmd-file.c b/gdb/mi/mi-cmd-file.c index 4252089..1bc5867 100644 --- a/gdb/mi/mi-cmd-file.c +++ b/gdb/mi/mi-cmd-file.c @@ -100,8 +100,8 @@ mi_cmd_file_list_exec_source_files (char *command, char **argv, int argc) ui_out_end (uiout, ui_out_type_tuple); } - map_partial_symbol_filenames (print_partial_file_name, NULL, - 1 /*need_fullname*/); + map_symbol_filenames (print_partial_file_name, NULL, + 1 /*need_fullname*/); ui_out_end (uiout, ui_out_type_list); } diff --git a/gdb/symfile.c b/gdb/symfile.c index 89ed34c..d863282 100644 --- a/gdb/symfile.c +++ b/gdb/symfile.c @@ -3843,16 +3843,19 @@ symfile_free_objfile (struct objfile *objfile) See quick_symbol_functions.expand_symtabs_matching for details. */ void -expand_partial_symbol_names (expand_symtabs_symbol_matcher_ftype *fun, - void *data) +expand_symtabs_matching (expand_symtabs_file_matcher_ftype *file_matcher, + expand_symtabs_symbol_matcher_ftype *symbol_matcher, + enum search_domain kind, + void *data) { struct objfile *objfile; ALL_OBJFILES (objfile) { if (objfile->sf) - objfile->sf->qf->expand_symtabs_matching (objfile, NULL, fun, - ALL_DOMAIN, data); + objfile->sf->qf->expand_symtabs_matching (objfile, file_matcher, + symbol_matcher, kind, + data); } } @@ -3861,8 +3864,8 @@ expand_partial_symbol_names (expand_symtabs_symbol_matcher_ftype *fun, See quick_symbol_functions.map_symbol_filenames for details. */ void -map_partial_symbol_filenames (symbol_filename_ftype *fun, void *data, - int need_fullname) +map_symbol_filenames (symbol_filename_ftype *fun, void *data, + int need_fullname) { struct objfile *objfile; diff --git a/gdb/symfile.h b/gdb/symfile.h index c48b368..17599be 100644 --- a/gdb/symfile.h +++ b/gdb/symfile.h @@ -566,11 +566,12 @@ void free_symfile_segment_data (struct symfile_segment_data *data); extern struct cleanup *increment_reading_symtab (void); -void expand_partial_symbol_names (int (*fun) (const char *, void *), - void *data); +void expand_symtabs_matching (expand_symtabs_file_matcher_ftype *, + expand_symtabs_symbol_matcher_ftype *, + enum search_domain kind, void *data); -void map_partial_symbol_filenames (symbol_filename_ftype *fun, void *data, - int need_fullname); +void map_symbol_filenames (symbol_filename_ftype *fun, void *data, + int need_fullname); /* From dwarf2read.c */ diff --git a/gdb/symtab.c b/gdb/symtab.c index 97cec58..5e988c8 100644 --- a/gdb/symtab.c +++ b/gdb/symtab.c @@ -3319,8 +3319,8 @@ sources_info (char *ignore, int from_tty) clear_filename_seen_cache (data.filename_seen_cache); data.first = 1; - map_partial_symbol_filenames (output_partial_symbol_filename, &data, - 1 /*need_fullname*/); + map_symbol_filenames (output_partial_symbol_filename, &data, + 1 /*need_fullname*/); printf_filtered ("\n"); do_cleanups (cleanups); @@ -3602,17 +3602,11 @@ search_symbols (char *regexp, enum search_domain kind, datum.nfiles = nfiles; datum.files = files; - ALL_OBJFILES (objfile) - { - if (objfile->sf) - objfile->sf->qf->expand_symtabs_matching (objfile, - (nfiles == 0 - ? NULL - : search_symbols_file_matches), - search_symbols_name_matches, - kind, - &datum); - } + expand_symtabs_matching ((nfiles == 0 + ? NULL + : search_symbols_file_matches), + search_symbols_name_matches, + kind, &datum); /* Here, we search through the minimal symbol tables for functions and variables that match, and force their symbols to be read. @@ -4253,7 +4247,7 @@ completion_list_add_fields (struct symbol *sym, const char *sym_text, } /* Type of the user_data argument passed to add_macro_name or - expand_partial_symbol_name. The contents are simply whatever is + symbol_completion_matcher. The contents are simply whatever is needed by completion_list_add_name. */ struct add_name_data { @@ -4278,10 +4272,10 @@ add_macro_name (const char *name, const struct macro_definition *ignore, datum->text, datum->word); } -/* A callback for expand_partial_symbol_names. */ +/* A callback for expand_symtabs_matching. */ static int -expand_partial_symbol_name (const char *name, void *user_data) +symbol_completion_matcher (const char *name, void *user_data) { struct add_name_data *datum = (struct add_name_data *) user_data; @@ -4392,7 +4386,8 @@ default_make_symbol_completion_list_break_on (const char *text, /* Look through the partial symtabs for all symbols which begin by matching SYM_TEXT. Expand all CUs that you find to the list. The real names will get added by COMPLETION_LIST_ADD_SYMBOL below. */ - expand_partial_symbol_names (expand_partial_symbol_name, &datum); + expand_symtabs_matching (NULL, symbol_completion_matcher, ALL_DOMAIN, + &datum); /* At this point scan through the misc symbol vectors and add each symbol you find to the list. Eventually we want to ignore @@ -4806,8 +4801,8 @@ make_source_files_completion_list (const char *text, const char *word) datum.word = word; datum.text_len = text_len; datum.list = &list; - map_partial_symbol_filenames (maybe_add_partial_symtab_filename, &datum, - 0 /*need_fullname*/); + map_symbol_filenames (maybe_add_partial_symtab_filename, &datum, + 0 /*need_fullname*/); do_cleanups (cache_cleanup); discard_cleanups (back_to); -- 2.7.4