/* Routines for name->symbol lookups in GDB.
- Copyright (C) 2003, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
+ Copyright (C) 2003, 2007, 2008, 2009, 2010, 2011
+ Free Software Foundation, Inc.
Contributed by David Carlton <carlton@bactrian.org> and by Kealia,
Inc.
* Define a function dict_<op> that looks up <op> in the dict_vector
and calls the appropriate function. Add a declaration for
- dict_<op> to dictionary.h.
-
-*/
+ dict_<op> to dictionary.h. */
/* An enum representing the various implementations of dictionaries.
Used only for debugging. */
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);
+ 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);