psymtab cleanup patch 2/3
authorDoug Evans <dje@google.com>
Wed, 15 Jan 2014 02:30:31 +0000 (18:30 -0800)
committerDoug Evans <dje@google.com>
Wed, 15 Jan 2014 02:30:31 +0000 (18:30 -0800)
This patch adds two typedefs:
expand_symtabs_file_matcher_ftype
expand_symtabs_symbol_matcher_ftype

It also renames the NAME_MATCHER argument in expand_symtabs_matching.
The function is named expand_symtabs_matching and it takes a name_matcher
argument.  Name of what?  The symtab?  A symbol?
I made it SYMBOL_MATCHER to make it clearer.

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

gdb/ChangeLog
gdb/dwarf2read.c
gdb/psymtab.c
gdb/symfile.c
gdb/symfile.h

index 015e4cc80628450f11756fdc65a99d1dfbda8d5a..1ea6dace635a08336dee6848e2136dfed7e36832 100644 (file)
@@ -1,3 +1,21 @@
+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.
index 36e8a620c735a9bb25728ccd587031599c056b6d..609698b2e3765cdd5cff2a50f60c5be3aee5f425 100644 (file)
@@ -3771,8 +3771,8 @@ dw2_map_matching_symbols (struct objfile *objfile,
 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)
 {
@@ -3876,7 +3876,7 @@ dw2_expand_symtabs_matching
 
       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
index ce45589396aa6a120990533d02dfee67ad08a0c7..457b91a3fd269e666e06b3141e46245c60b225ee 100644 (file)
@@ -1281,7 +1281,7 @@ static int
 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;
@@ -1304,7 +1304,7 @@ recursively_search_psymtabs (struct partial_symtab *ps,
        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;
@@ -1346,7 +1346,7 @@ recursively_search_psymtabs (struct partial_symtab *ps,
                   && 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;
@@ -1363,8 +1363,8 @@ recursively_search_psymtabs (struct partial_symtab *ps,
 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)
 {
@@ -1406,7 +1406,7 @@ expand_symtabs_matching_via_partial
            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);
     }
 }
index 607a648e332734cca40a9e535a391a0ee4a393b0..89ed34cb417b7dc5f7d2990b7fd98170d036e387 100644 (file)
@@ -3843,7 +3843,7 @@ symfile_free_objfile (struct objfile *objfile)
    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;
index 380c8cdfe6999d887ec5195ed905c13e24954baa..c48b368853ba04a513ee19ee467ac1ff76a0a08c 100644 (file)
@@ -125,6 +125,18 @@ struct symfile_segment_data
 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,
@@ -256,11 +268,11 @@ struct quick_symbol_functions
 
      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.
 
@@ -268,8 +280,8 @@ struct quick_symbol_functions
      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);