static struct symbol * iter_name_next_linear (const char *name, struct dict_iterator *iterator) { const struct dictionary *dict = DICT_ITERATOR_DICT (iterator); int i, nsyms = DICT_LINEAR_NSYMS (dict); struct symbol *sym, *retval = NULL; for (i = DICT_ITERATOR_INDEX (iterator) + 1; i < nsyms; ++i) { sym = DICT_LINEAR_SYM (dict, i); /* APPLE LOCAL begin psym equivalences */ if ((strcmp_iw (SYMBOL_SEARCH_NAME (sym), name) == 0) || (psym_equivalences && psym_name_match (SYMBOL_SEARCH_NAME (sym), name))) /* APPLE LOCAL end psym equivalences */ { retval = sym; break; } } DICT_ITERATOR_INDEX (iterator) = i; return retval; }
static struct symbol * iterator_first_linear (const struct dictionary *dict, struct dict_iterator *iterator) { DICT_ITERATOR_DICT (iterator) = dict; DICT_ITERATOR_INDEX (iterator) = 0; return DICT_LINEAR_NSYMS (dict) ? DICT_LINEAR_SYM (dict, 0) : NULL; }
static struct symbol * iterator_next_linear (struct dict_iterator *iterator) { const struct dictionary *dict = DICT_ITERATOR_DICT (iterator); if (++DICT_ITERATOR_INDEX (iterator) >= DICT_LINEAR_NSYMS (dict)) return NULL; else return DICT_LINEAR_SYM (dict, DICT_ITERATOR_INDEX (iterator)); }
static void add_symbol_linear_expandable (struct dictionary *dict, struct symbol *sym) { int nsyms = ++DICT_LINEAR_NSYMS (dict); /* Do we have enough room? If not, grow it. */ if (nsyms > DICT_LINEAR_EXPANDABLE_CAPACITY (dict)) { DICT_LINEAR_EXPANDABLE_CAPACITY (dict) *= 2; DICT_LINEAR_SYMS (dict) = xrealloc (DICT_LINEAR_SYMS (dict), DICT_LINEAR_EXPANDABLE_CAPACITY (dict) * sizeof (struct symbol *)); } DICT_LINEAR_SYM (dict, nsyms - 1) = sym; }
static struct symbol * iter_name_next_linear (const char *name, struct dict_iterator *iterator) { const struct dictionary *dict = DICT_ITERATOR_DICT (iterator); int i, nsyms = DICT_LINEAR_NSYMS (dict); struct symbol *sym, *retval = NULL; for (i = DICT_ITERATOR_INDEX (iterator) + 1; i < nsyms; ++i) { sym = DICT_LINEAR_SYM (dict, i); if (strcmp_iw (SYMBOL_SEARCH_NAME (sym), name) == 0) { retval = sym; break; } } DICT_ITERATOR_INDEX (iterator) = i; return retval; }