+2014-01-14 Doug Evans <dje@google.com>
+
+ * 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.
+ expand_symtabs_file_matcher_ftype, expand_symtabs_symbol_matcher_ftype.
+ * symfile.c (expand_partial_symbol_names): Update to use
+ expand_symtabs_symbol_matcher_ftype.
+ * dwarf2read.c (dw2_expand_symtabs_matching): Update to use
+ expand_symtabs_file_matcher_ftype, expand_symtabs_symbol_matcher_ftype.
+ Arg name_matcher renamed to symbol_matcher.
+ * psymtab.c (recursively_search_psymtabs): Update to use
+ expand_symtabs_symbol_matcher_ftype. Arg name_matcher renamed to
+ sym_matcher.
+ (expand_symtabs_matching_via_partial): Update to use
+ expand_symtabs_file_matcher_ftype, expand_symtabs_symbol_matcher_ftype.
+ Arg name_matcher renamed to symbol_matcher.
+
2014-01-14 Doug Evans <dje@google.com>
* psymtab.c (expand_partial_symbol_names): Delete, moved to symfile.c.
static void
dw2_expand_symtabs_matching
(struct objfile *objfile,
- int (*file_matcher) (const char *, void *, int basenames),
- int (*name_matcher) (const char *, void *),
+ expand_symtabs_file_matcher_ftype *file_matcher,
+ expand_symtabs_symbol_matcher_ftype *symbol_matcher,
enum search_domain kind,
void *data)
{
name = index->constant_pool + MAYBE_SWAP (index->symbol_table[idx]);
- if (! (*name_matcher) (name, data))
+ if (! (*symbol_matcher) (name, data))
continue;
/* The name was matched, now expand corresponding CUs that were
recursively_search_psymtabs (struct partial_symtab *ps,
struct objfile *objfile,
enum search_domain kind,
- int (*name_matcher) (const char *, void *),
+ expand_symtabs_symbol_matcher_ftype *sym_matcher,
void *data)
{
struct partial_symbol **psym;
continue;
r = recursively_search_psymtabs (ps->dependencies[i],
- objfile, kind, name_matcher, data);
+ objfile, kind, sym_matcher, data);
if (r != 0)
{
ps->searched_flag = PST_SEARCHED_AND_FOUND;
&& PSYMBOL_CLASS (*psym) == LOC_BLOCK)
|| (kind == TYPES_DOMAIN
&& PSYMBOL_CLASS (*psym) == LOC_TYPEDEF))
- && (*name_matcher) (SYMBOL_SEARCH_NAME (*psym), data))
+ && (*sym_matcher) (SYMBOL_SEARCH_NAME (*psym), data))
{
/* Found a match, so notify our caller. */
result = PST_SEARCHED_AND_FOUND;
static void
expand_symtabs_matching_via_partial
(struct objfile *objfile,
- int (*file_matcher) (const char *, void *, int basenames),
- int (*name_matcher) (const char *, void *),
+ expand_symtabs_file_matcher_ftype *file_matcher,
+ expand_symtabs_symbol_matcher_ftype *symbol_matcher,
enum search_domain kind,
void *data)
{
continue;
}
- if (recursively_search_psymtabs (ps, objfile, kind, name_matcher, data))
+ if (recursively_search_psymtabs (ps, objfile, kind, symbol_matcher, data))
psymtab_to_symtab (objfile, ps);
}
}
See quick_symbol_functions.expand_symtabs_matching for details. */
void
-expand_partial_symbol_names (int (*fun) (const char *, void *),
+expand_partial_symbol_names (expand_symtabs_symbol_matcher_ftype *fun,
void *data)
{
struct objfile *objfile;
typedef void (symbol_filename_ftype) (const char *filename,
const char *fullname, void *data);
+/* Callback for quick_symbol_functions->expand_symtabs_matching
+ to match a file name. */
+
+typedef int (expand_symtabs_file_matcher_ftype) (const char *filename,
+ void *data, int basenames);
+
+/* Callback for quick_symbol_functions->expand_symtabs_matching
+ to match a symbol name. */
+
+typedef int (expand_symtabs_symbol_matcher_ftype) (const char *name,
+ void *data);
+
/* The "quick" symbol functions exist so that symbol readers can
avoiding an initial read of all the symbols. For example, symbol
readers might choose to use the "partial symbol table" utilities,
Otherwise, if KIND does not match this symbol is skipped.
- If even KIND matches, then NAME_MATCHER is called for each symbol
+ If even KIND matches, then SYMBOL_MATCHER is called for each symbol
defined in the file. The symbol "search" name and DATA are passed
- to NAME_MATCHER.
+ to SYMBOL_MATCHER.
- If NAME_MATCHER returns zero, then this symbol is skipped.
+ If SYMBOL_MATCHER returns zero, then this symbol is skipped.
Otherwise, this symbol's symbol table is expanded.
functions. */
void (*expand_symtabs_matching)
(struct objfile *objfile,
- int (*file_matcher) (const char *, void *, int basenames),
- int (*name_matcher) (const char *, void *),
+ expand_symtabs_file_matcher_ftype *file_matcher,
+ expand_symtabs_symbol_matcher_ftype *symbol_matcher,
enum search_domain kind,
void *data);