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-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.
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);
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);
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);
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)))
}
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);
}
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;
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;
}
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);
#ifndef DICTIONARY_H
#define DICTIONARY_H
+#include "symfile.h"
+
/* An opaque type for dictionaries; only dictionary.c should know
about its innards. */
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
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
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
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,
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;
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;
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;
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
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.