GDB (xrefs)
|
#include "defs.h"
#include <ctype.h>
#include "gdb_obstack.h"
#include "symtab.h"
#include "buildsym.h"
#include "gdb_assert.h"
#include "dictionary.h"
Go to the source code of this file.
#define DICT_EXPANDABLE_INITIAL_CAPACITY 10 |
Definition at line 203 of file dictionary.c.
Referenced by dict_create_hashed_expandable(), and dict_create_linear_expandable().
#define DICT_HASHED_BUCKET | ( | d, | |
i | |||
) | DICT_HASHED_BUCKETS (d) [i] |
Definition at line 188 of file dictionary.c.
Referenced by iter_match_first_hashed(), and iterator_hashed_advance().
#define DICT_HASHED_BUCKETS | ( | d | ) | (d)->data.hashed.buckets |
Definition at line 187 of file dictionary.c.
Referenced by dict_create_hashed(), dict_create_hashed_expandable(), expand_hashtable(), free_hashed_expandable(), and insert_symbol_hashed().
#define DICT_HASHED_EXPANDABLE_NSYMS | ( | d | ) | (d)->data.hashed_expandable.nsyms |
Definition at line 190 of file dictionary.c.
Referenced by add_symbol_hashed_expandable(), dict_create_hashed_expandable(), and size_hashed_expandable().
#define DICT_HASHED_NBUCKETS | ( | d | ) | (d)->data.hashed.nbuckets |
Definition at line 186 of file dictionary.c.
Referenced by add_symbol_hashed_expandable(), dict_create_hashed(), dict_create_hashed_expandable(), expand_hashtable(), insert_symbol_hashed(), iter_match_first_hashed(), iterator_hashed_advance(), and size_hashed().
#define DICT_HASHTABLE_SIZE | ( | n | ) | ((n)/5 + 1) |
Definition at line 208 of file dictionary.c.
Referenced by add_symbol_hashed_expandable(), and dict_create_hashed().
#define DICT_ITERATOR_CURRENT | ( | iter | ) | (iter)->current |
Definition at line 221 of file dictionary.c.
Referenced by iter_match_first_hashed(), iter_match_next_hashed(), iterator_hashed_advance(), and iterator_next_hashed().
#define DICT_ITERATOR_DICT | ( | iter | ) | (iter)->dict |
Definition at line 215 of file dictionary.c.
Referenced by dict_iter_match_next(), dict_iterator_next(), iter_match_first_hashed(), iter_match_first_linear(), iter_match_next_linear(), iterator_first_hashed(), iterator_first_linear(), iterator_hashed_advance(), and iterator_next_linear().
#define DICT_ITERATOR_INDEX | ( | iter | ) | (iter)->index |
Definition at line 218 of file dictionary.c.
Referenced by iter_match_first_linear(), iter_match_next_linear(), iterator_first_hashed(), iterator_first_linear(), iterator_hashed_advance(), and iterator_next_linear().
#define DICT_LINEAR_EXPANDABLE_CAPACITY | ( | d | ) | (d)->data.linear_expandable.capacity |
Definition at line 198 of file dictionary.c.
Referenced by add_symbol_linear_expandable(), and dict_create_linear_expandable().
#define DICT_LINEAR_NSYMS | ( | d | ) | (d)->data.linear.nsyms |
Definition at line 194 of file dictionary.c.
Referenced by add_symbol_linear_expandable(), dict_create_linear(), dict_create_linear_expandable(), iter_match_next_linear(), iterator_first_linear(), iterator_next_linear(), and size_linear().
#define DICT_LINEAR_SYM | ( | d, | |
i | |||
) | DICT_LINEAR_SYMS (d) [i] |
Definition at line 196 of file dictionary.c.
Referenced by add_symbol_linear_expandable(), iter_match_next_linear(), iterator_first_linear(), and iterator_next_linear().
#define DICT_LINEAR_SYMS | ( | d | ) | (d)->data.linear.syms |
Definition at line 195 of file dictionary.c.
Referenced by add_symbol_linear_expandable(), dict_create_linear(), dict_create_linear_expandable(), and free_linear_expandable().
#define DICT_VECTOR | ( | d | ) | (d)->vector |
Definition at line 182 of file dictionary.c.
Referenced by dict_add_symbol(), dict_create_hashed(), dict_create_hashed_expandable(), dict_create_linear(), dict_create_linear_expandable(), dict_free(), dict_iter_match_first(), dict_iter_match_next(), dict_iterator_first(), dict_iterator_next(), and dict_size().
enum dict_type |
Definition at line 90 of file dictionary.c.
static void add_symbol_hashed_expandable | ( | struct dictionary * | dict, |
struct symbol * | sym | ||
) | [static] |
Definition at line 735 of file dictionary.c.
References DICT_HASHED_EXPANDABLE_NSYMS, DICT_HASHED_NBUCKETS, DICT_HASHTABLE_SIZE, expand_hashtable(), and insert_symbol_hashed().
static void add_symbol_linear_expandable | ( | struct dictionary * | dict, |
struct symbol * | sym | ||
) | [static] |
Definition at line 936 of file dictionary.c.
References DICT_LINEAR_EXPANDABLE_CAPACITY, DICT_LINEAR_NSYMS, DICT_LINEAR_SYM, DICT_LINEAR_SYMS, and xrealloc().
static void add_symbol_nonexpandable | ( | struct dictionary * | dict, |
struct symbol * | sym | ||
) | [static] |
Definition at line 600 of file dictionary.c.
References _, and internal_error().
void dict_add_pending | ( | struct dictionary * | dict, |
const struct pending * | symbol_list | ||
) |
Definition at line 505 of file dictionary.c.
References dict_add_symbol(), pending::next, pending::nsyms, and pending::symbol.
Referenced by augment_type_symtab(), and finish_block_internal().
void dict_add_symbol | ( | struct dictionary * | dict, |
struct symbol * | sym | ||
) |
Definition at line 496 of file dictionary.c.
References add_symbol(), and DICT_VECTOR.
Referenced by add_class_symtab_symbol(), add_symbol(), and dict_add_pending().
struct dictionary* dict_create_hashed | ( | struct obstack * | obstack, |
const struct pending * | symbol_list | ||
) | [read] |
Definition at line 357 of file dictionary.c.
References DICT_HASHED_BUCKETS, DICT_HASHED_NBUCKETS, dict_hashed_vector, DICT_HASHTABLE_SIZE, DICT_VECTOR, insert_symbol_hashed(), memset(), pending::next, pending::nsyms, and pending::symbol.
Referenced by finish_block_internal().
struct dictionary* dict_create_hashed_expandable | ( | void | ) | [read] |
Definition at line 401 of file dictionary.c.
References DICT_EXPANDABLE_INITIAL_CAPACITY, DICT_HASHED_BUCKETS, DICT_HASHED_EXPANDABLE_NSYMS, dict_hashed_expandable_vector, DICT_HASHED_NBUCKETS, DICT_VECTOR, xcalloc(), and xmalloc().
Referenced by finish_block_internal(), get_java_class_symtab(), and new_block().
struct dictionary* dict_create_linear | ( | struct obstack * | obstack, |
const struct pending * | symbol_list | ||
) | [read] |
Definition at line 421 of file dictionary.c.
References DICT_LINEAR_NSYMS, DICT_LINEAR_SYMS, dict_linear_vector, DICT_VECTOR, pending::next, pending::nsyms, and pending::symbol.
Referenced by finalize_symtab(), finish_block_internal(), and get_java_class_symtab().
struct dictionary* dict_create_linear_expandable | ( | void | ) | [read] |
Definition at line 466 of file dictionary.c.
References DICT_EXPANDABLE_INITIAL_CAPACITY, DICT_LINEAR_EXPANDABLE_CAPACITY, dict_linear_expandable_vector, DICT_LINEAR_NSYMS, DICT_LINEAR_SYMS, DICT_VECTOR, and xmalloc().
Referenced by new_block().
int dict_empty | ( | struct dictionary * | dict | ) |
Definition at line 581 of file dictionary.c.
References dict_iterator_first().
void dict_free | ( | struct dictionary * | dict | ) |
Definition at line 488 of file dictionary.c.
References DICT_VECTOR, and free().
Referenced by jv_per_objfile_free().
Definition at line 794 of file dictionary.c.
References hash(), msymbol_hash_iw(), string, and SYMBOL_HASH_NEXT.
Referenced by insert_symbol_hashed(), and iter_match_first_hashed().
struct symbol* dict_iter_match_first | ( | const struct dictionary * | dict, |
const char * | name, | ||
symbol_compare_ftype * | compare, | ||
struct dict_iterator * | iterator | ||
) | [read] |
Definition at line 552 of file dictionary.c.
References DICT_VECTOR.
Referenced by block_iter_match_first(), block_iter_match_step(), and dict_iter_name_first().
struct symbol* dict_iter_match_next | ( | const char * | name, |
symbol_compare_ftype * | compare, | ||
struct dict_iterator * | iterator | ||
) | [read] |
Definition at line 561 of file dictionary.c.
References DICT_ITERATOR_DICT, and DICT_VECTOR.
Referenced by block_iter_match_next(), block_iter_match_step(), and dict_iter_name_next().
struct symbol* dict_iter_name_first | ( | const struct dictionary * | dict, |
const char * | name, | ||
struct dict_iterator * | iterator | ||
) | [read] |
Definition at line 538 of file dictionary.c.
References dict_iter_match_first(), and strcmp_iw().
Referenced by block_iter_name_first(), and block_iter_name_step().
struct symbol* dict_iter_name_next | ( | const char * | name, |
struct dict_iterator * | iterator | ||
) | [read] |
Definition at line 546 of file dictionary.c.
References dict_iter_match_next(), and strcmp_iw().
Referenced by block_iter_name_next(), and block_iter_name_step().
struct symbol* dict_iterator_first | ( | const struct dictionary * | dict, |
struct dict_iterator * | iterator | ||
) | [read] |
Definition at line 521 of file dictionary.c.
References DICT_VECTOR.
Referenced by block_iterator_first(), block_iterator_step(), and dict_empty().
struct symbol* dict_iterator_next | ( | struct dict_iterator * | iterator | ) | [read] |
Definition at line 531 of file dictionary.c.
References DICT_ITERATOR_DICT, and DICT_VECTOR.
Referenced by block_iterator_next(), and block_iterator_step().
int dict_size | ( | const struct dictionary * | dict | ) |
static void expand_hashtable | ( | struct dictionary * | dict | ) | [static] |
Definition at line 754 of file dictionary.c.
References DICT_HASHED_BUCKETS, DICT_HASHED_NBUCKETS, symbol::hash_next, insert_symbol_hashed(), xcalloc(), and xfree().
Referenced by add_symbol_hashed_expandable().
static void free_hashed_expandable | ( | struct dictionary * | dict | ) | [static] |
Definition at line 728 of file dictionary.c.
References DICT_HASHED_BUCKETS, and xfree().
static void free_linear_expandable | ( | struct dictionary * | dict | ) | [static] |
Definition at line 928 of file dictionary.c.
References DICT_LINEAR_SYMS, and xfree().
static void free_obstack | ( | struct dictionary * | dict | ) | [static] |
Definition at line 594 of file dictionary.c.
static void insert_symbol_hashed | ( | struct dictionary * | dict, |
struct symbol * | sym | ||
) | [static] |
Definition at line 707 of file dictionary.c.
References dict_hash(), DICT_HASHED_BUCKETS, DICT_HASHED_NBUCKETS, symbol::hash_next, and SYMBOL_SEARCH_NAME.
Referenced by add_symbol_hashed_expandable(), dict_create_hashed(), and expand_hashtable().
static struct symbol * iter_match_first_hashed | ( | const struct dictionary * | dict, |
const char * | name, | ||
symbol_compare_ftype * | compare, | ||
struct dict_iterator * | iterator | ||
) | [static, read] |
Definition at line 656 of file dictionary.c.
References dict_hash(), DICT_HASHED_BUCKET, DICT_HASHED_NBUCKETS, DICT_ITERATOR_CURRENT, DICT_ITERATOR_DICT, symbol::hash_next, and SYMBOL_SEARCH_NAME.
static struct symbol * iter_match_first_linear | ( | const struct dictionary * | dict, |
const char * | name, | ||
symbol_compare_ftype * | compare, | ||
struct dict_iterator * | iterator | ||
) | [static, read] |
Definition at line 886 of file dictionary.c.
References DICT_ITERATOR_DICT, DICT_ITERATOR_INDEX, and iter_match_next_linear().
static struct symbol * iter_match_next_hashed | ( | const char * | name, |
symbol_compare_ftype * | compare, | ||
struct dict_iterator * | iterator | ||
) | [static, read] |
Definition at line 686 of file dictionary.c.
References DICT_ITERATOR_CURRENT, symbol::hash_next, and SYMBOL_SEARCH_NAME.
static struct symbol * iter_match_next_linear | ( | const char * | name, |
symbol_compare_ftype * | compare, | ||
struct dict_iterator * | iterator | ||
) | [static, read] |
Definition at line 897 of file dictionary.c.
References DICT_ITERATOR_DICT, DICT_ITERATOR_INDEX, DICT_LINEAR_NSYMS, DICT_LINEAR_SYM, and SYMBOL_SEARCH_NAME.
Referenced by iter_match_first_linear().
static struct symbol * iterator_first_hashed | ( | const struct dictionary * | dict, |
struct dict_iterator * | iterator | ||
) | [static, read] |
Definition at line 609 of file dictionary.c.
References DICT_ITERATOR_DICT, DICT_ITERATOR_INDEX, and iterator_hashed_advance().
static struct symbol * iterator_first_linear | ( | const struct dictionary * | dict, |
struct dict_iterator * | iterator | ||
) | [static, read] |
Definition at line 866 of file dictionary.c.
References DICT_ITERATOR_DICT, DICT_ITERATOR_INDEX, DICT_LINEAR_NSYMS, and DICT_LINEAR_SYM.
static struct symbol * iterator_hashed_advance | ( | struct dict_iterator * | iter | ) | [static, read] |
Definition at line 634 of file dictionary.c.
References DICT_HASHED_BUCKET, DICT_HASHED_NBUCKETS, DICT_ITERATOR_CURRENT, DICT_ITERATOR_DICT, and DICT_ITERATOR_INDEX.
Referenced by iterator_first_hashed(), and iterator_next_hashed().
static struct symbol * iterator_next_hashed | ( | struct dict_iterator * | iterator | ) | [static, read] |
Definition at line 618 of file dictionary.c.
References DICT_ITERATOR_CURRENT, and iterator_hashed_advance().
static struct symbol * iterator_next_linear | ( | struct dict_iterator * | iterator | ) | [static, read] |
Definition at line 875 of file dictionary.c.
References DICT_ITERATOR_DICT, DICT_ITERATOR_INDEX, DICT_LINEAR_NSYMS, and DICT_LINEAR_SYM.
static int size_hashed | ( | const struct dictionary * | dict | ) | [static] |
Definition at line 720 of file dictionary.c.
References DICT_HASHED_NBUCKETS.
static int size_hashed_expandable | ( | const struct dictionary * | dict | ) | [static] |
Definition at line 748 of file dictionary.c.
References DICT_HASHED_EXPANDABLE_NSYMS.
static int size_linear | ( | const struct dictionary * | dict | ) | [static] |
Definition at line 920 of file dictionary.c.
References DICT_LINEAR_NSYMS.
struct dict_vector dict_hashed_expandable_vector [static] |
{ DICT_HASHED_EXPANDABLE, free_hashed_expandable, add_symbol_hashed_expandable, iterator_first_hashed, iterator_next_hashed, iter_match_first_hashed, iter_match_next_hashed, size_hashed_expandable, }
Definition at line 304 of file dictionary.c.
Referenced by dict_create_hashed_expandable().
struct dict_vector dict_hashed_vector [static] |
{ DICT_HASHED, free_obstack, add_symbol_nonexpandable, iterator_first_hashed, iterator_next_hashed, iter_match_first_hashed, iter_match_next_hashed, size_hashed, }
Definition at line 292 of file dictionary.c.
Referenced by dict_create_hashed().
struct dict_vector dict_linear_expandable_vector [static] |
{ DICT_LINEAR_EXPANDABLE, free_linear_expandable, add_symbol_linear_expandable, iterator_first_linear, iterator_next_linear, iter_match_first_linear, iter_match_next_linear, size_linear, }
Definition at line 328 of file dictionary.c.
Referenced by dict_create_linear_expandable().
struct dict_vector dict_linear_vector [static] |
{ DICT_LINEAR, free_obstack, add_symbol_nonexpandable, iterator_first_linear, iterator_next_linear, iter_match_first_linear, iter_match_next_linear, size_linear, }
Definition at line 316 of file dictionary.c.
Referenced by dict_create_linear().