gdb/
authorJan Kratochvil <jan.kratochvil@redhat.com>
Wed, 24 Nov 2010 19:01:51 +0000 (19:01 +0000)
committerJan Kratochvil <jan.kratochvil@redhat.com>
Wed, 24 Nov 2010 19:01:51 +0000 (19:01 +0000)
Code cleanup.
* dictionary.c
(struct dict_vector) <iter_match_first, iter_match_next>
(iter_match_first_hashed, iter_match_next_hashed)
(iter_match_first_linear, iter_match_next_linear)
(dict_iter_match_first, dict_iter_match_next, iter_match_first_hashed)
(iter_match_next_hashed, iter_match_first_linear)
(iter_match_next_linear): Use symbol_compare_ftype.
* dictionary.h: Include symfile.h.
(dict_iter_match_first, dict_iter_match_next): Use
symbol_compare_ftype.
* dwarf2read.c (dw2_map_matching_symbols): Likewise.
* psymtab.c (match_partial_symbol, match_partial_symbol, map_block)
(map_matching_symbols_psymtab): Likewise.
* symfile.h (symbol_compare_ftype): New typedef.
(struct quick_symbol_functions) <map_matching_symbols): Use
symbol_compare_ftype.

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

index 931b0c3..372a170 100644 (file)
@@ -1,3 +1,23 @@
+2010-11-24  Jan Kratochvil  <jan.kratochvil@redhat.com>
+
+       Code cleanup.
+       * dictionary.c
+       (struct dict_vector) <iter_match_first, iter_match_next>
+       (iter_match_first_hashed, iter_match_next_hashed)
+       (iter_match_first_linear, iter_match_next_linear)
+       (dict_iter_match_first, dict_iter_match_next, iter_match_first_hashed)
+       (iter_match_next_hashed, iter_match_first_linear)
+       (iter_match_next_linear): Use symbol_compare_ftype.
+       * dictionary.h: Include symfile.h.
+       (dict_iter_match_first, dict_iter_match_next): Use
+       symbol_compare_ftype.
+       * dwarf2read.c (dw2_map_matching_symbols): Likewise.
+       * psymtab.c (match_partial_symbol, match_partial_symbol, map_block)
+       (map_matching_symbols_psymtab): Likewise.
+       * symfile.h (symbol_compare_ftype): New typedef.
+       (struct quick_symbol_functions) <map_matching_symbols): Use
+       symbol_compare_ftype.
+
 2010-11-23  Tom Tromey  <tromey@redhat.com>
 
        * configure: Rebuild.
index 9d53ff0..6b0f7a9 100644 (file)
@@ -118,13 +118,11 @@ struct dict_vector
   struct symbol *(*iterator_next) (struct dict_iterator *iterator);
   /* Functions to iterate over symbols with a given name.  */
   struct symbol *(*iter_match_first) (const struct dictionary *dict,
-                                    const char *name,
-                                    int (*equiv) (const char *,
-                                                  const char *),
-                                    struct dict_iterator *iterator);
+                                     const char *name,
+                                     symbol_compare_ftype *equiv,
+                                     struct dict_iterator *iterator);
   struct symbol *(*iter_match_next) (const char *name,
-                                    int (*equiv) (const char *,
-                                                  const char *),
+                                    symbol_compare_ftype *equiv,
                                     struct dict_iterator *iterator);
   /* A size function, for maint print symtabs.  */
   int (*size) (const struct dictionary *dict);
@@ -243,13 +241,11 @@ static struct symbol *iterator_next_hashed (struct dict_iterator *iterator);
 
 static struct symbol *iter_match_first_hashed (const struct dictionary *dict,
                                               const char *name,
-                                              int (*compare) (const char *,
-                                                              const char *),
+                                              symbol_compare_ftype *compare,
                                              struct dict_iterator *iterator);
 
 static struct symbol *iter_match_next_hashed (const char *name,
-                                             int (*compare) (const char *,
-                                                             const char *),
+                                             symbol_compare_ftype *compare,
                                              struct dict_iterator *iterator);
 
 static unsigned int dict_hash (const char *string);
@@ -277,13 +273,11 @@ static struct symbol *iterator_next_linear (struct dict_iterator *iterator);
 
 static struct symbol *iter_match_first_linear (const struct dictionary *dict,
                                               const char *name,
-                                              int (*compare) (const char *,
-                                                              const char *),
+                                              symbol_compare_ftype *compare,
                                               struct dict_iterator *iterator);
 
 static struct symbol *iter_match_next_linear (const char *name,
-                                             int (*compare) (const char *,
-                                                             const char *),
+                                             symbol_compare_ftype *compare,
                                              struct dict_iterator *iterator);
 
 static int size_linear (const struct dictionary *dict);
@@ -542,16 +536,14 @@ dict_iter_name_next (const char *name, struct dict_iterator *iterator)
 
 struct symbol *
 dict_iter_match_first (const struct dictionary *dict,
-                      const char *name,
-                      int (*compare) (const char *, const char *),
+                      const char *name, symbol_compare_ftype *compare,
                       struct dict_iterator *iterator)
 {
   return (DICT_VECTOR (dict))->iter_match_first (dict, name, compare, iterator);
 }
 
 struct symbol *
-dict_iter_match_next (const char *name,
-                     int (*compare) (const char *, const char *),
+dict_iter_match_next (const char *name, symbol_compare_ftype *compare,
                      struct dict_iterator *iterator)
 {
   return (DICT_VECTOR (DICT_ITERATOR_DICT (iterator)))
@@ -646,9 +638,8 @@ iterator_hashed_advance (struct dict_iterator *iterator)
 }
 
 static struct symbol *
-iter_match_first_hashed (const struct dictionary *dict,
-                        const char *name,
-                        int (*compare) (const char *, const char *),
+iter_match_first_hashed (const struct dictionary *dict, const char *name,
+                        symbol_compare_ftype *compare,
                         struct dict_iterator *iterator)
 {
   unsigned int hash_index = dict_hash (name) % DICT_HASHED_NBUCKETS (dict);
@@ -677,8 +668,7 @@ iter_match_first_hashed (const struct dictionary *dict,
 }
 
 static struct symbol *
-iter_match_next_hashed (const char *name,
-                       int (*compare) (const char *, const char *),
+iter_match_next_hashed (const char *name, symbol_compare_ftype *compare,
                        struct dict_iterator *iterator)
 {
   struct symbol *next;
@@ -868,8 +858,7 @@ iterator_next_linear (struct dict_iterator *iterator)
 
 static struct symbol *
 iter_match_first_linear (const struct dictionary *dict,
-                        const char *name,
-                        int (*compare) (const char *, const char *),
+                        const char *name, symbol_compare_ftype *compare,
                         struct dict_iterator *iterator)
 {
   DICT_ITERATOR_DICT (iterator) = dict;
@@ -879,8 +868,7 @@ iter_match_first_linear (const struct dictionary *dict,
 }
 
 static struct symbol *
-iter_match_next_linear (const char *name,
-                       int (*compare) (const char *, const char *),
+iter_match_next_linear (const char *name, symbol_compare_ftype *compare,
                        struct dict_iterator *iterator)
 {
   const struct dictionary *dict = DICT_ITERATOR_DICT (iterator);
index f7d3035..b5b794c 100644 (file)
@@ -23,6 +23,8 @@
 #ifndef DICTIONARY_H
 #define DICTIONARY_H
 
+#include "symfile.h"
+
 /* An opaque type for dictionaries; only dictionary.c should know
    about its innards.  */
 
@@ -142,8 +144,7 @@ extern struct symbol *dict_iter_name_next (const char *name,
 
 extern struct symbol *dict_iter_match_first (const struct dictionary *dict,
                                             const char *name,
-                                            int (*compare) (const char*, 
-                                                            const char *),
+                                            symbol_compare_ftype *compare,
                                             struct dict_iterator *iterator);
 
 /* Advance ITERATOR to point at the next symbol in DICT whose
@@ -155,8 +156,7 @@ extern struct symbol *dict_iter_match_first (const struct dictionary *dict,
    previous call to dict_iter_match_first with the same NAME and COMPARE.  */
 
 extern struct symbol *dict_iter_match_next (const char *name,
-                                           int (*compare) (const char*, 
-                                                           const char *),
+                                           symbol_compare_ftype *compare,
                                            struct dict_iterator *iterator);
 
 /* Return some notion of the size of the dictionary: the number of
index f6ee438..ad8b109 100644 (file)
@@ -2383,10 +2383,8 @@ dw2_map_matching_symbols (const char * name, domain_enum namespace,
                          struct objfile *objfile, int global,
                          int (*callback) (struct block *,
                                           struct symbol *, void *),
-                         void *data,
-                         int (*match) (const char *, const char *),
-                         int (*ordered_compare) (const char *,
-                                                 const char *))
+                         void *data, symbol_compare_ftype *match,
+                         symbol_compare_ftype *ordered_compare)
 {
   /* Currently unimplemented; used for Ada.  The function can be called if the
      current language is Ada for a non-Ada objfile using GNU index.  As Ada
index 95f102b..d1df00d 100644 (file)
@@ -50,11 +50,8 @@ struct psymbol_bcache
 static struct partial_symbol *match_partial_symbol (struct partial_symtab *,
                                                    int,
                                                    const char *, domain_enum,
-                                                   int (*) (const char *,
-                                                            const char *),
-                                                   int (*) (const char *,
-                                                            const char *));
-
+                                                   symbol_compare_ftype *,
+                                                   symbol_compare_ftype *);
 
 static struct partial_symbol *lookup_partial_symbol (struct partial_symtab *,
                                                     const char *, int,
@@ -446,8 +443,8 @@ lookup_symbol_aux_psymtabs (struct objfile *objfile,
 static struct partial_symbol *
 match_partial_symbol (struct partial_symtab *pst, int global,
                      const char *name, domain_enum domain,
-                     int (*match) (const char *, const char *),
-                     int (*ordered_compare) (const char *, const char *))
+                     symbol_compare_ftype *match,
+                     symbol_compare_ftype *ordered_compare)
 {
   struct partial_symbol **start, **psym;
   struct partial_symbol **top, **real_top, **bottom, **center;
@@ -1064,8 +1061,7 @@ static int
 map_block (const char *name, domain_enum namespace, struct objfile *objfile,
           struct block *block,
           int (*callback) (struct block *, struct symbol *, void *),
-          void *data,
-          int (*match) (const char *, const char *))
+          void *data, symbol_compare_ftype *match)
 {
   struct dict_iterator iter;
   struct symbol *sym;
@@ -1093,9 +1089,8 @@ map_matching_symbols_psymtab (const char *name, domain_enum namespace,
                              int (*callback) (struct block *,
                                               struct symbol *, void *),
                              void *data,
-                             int (*match) (const char *, const char *),
-                             int (*ordered_compare) (const char *,
-                                                     const char *))
+                             symbol_compare_ftype *match,
+                             symbol_compare_ftype *ordered_compare)
 {
   const int block_kind = global ? GLOBAL_BLOCK : STATIC_BLOCK;
   struct partial_symtab *ps;
index c9f4e65..e989d5c 100644 (file)
@@ -32,6 +32,11 @@ struct obj_section;
 struct obstack;
 struct block;
 
+/* Comparison function for symbol look ups.  */
+
+typedef int (symbol_compare_ftype) (const char *string1,
+                                   const char *string2);
+
 /* Partial symbols are stored in the psymbol_cache and pointers to
    them are kept in a dynamically grown array that is obtained from
    malloc and grown as necessary via realloc.  Each objfile typically
@@ -234,9 +239,8 @@ struct quick_symbol_functions
                                int (*callback) (struct block *,
                                                 struct symbol *, void *),
                                void *data,
-                               int (*match) (const char *, const char *),
-                               int (*ordered_compare) (const char *,
-                                                       const char *));
+                               symbol_compare_ftype *match,
+                               symbol_compare_ftype *ordered_compare);
 
   /* Expand all symbol tables in OBJFILE matching some criteria.