Lines Matching refs:iterator

118 				    struct dict_iterator *iterator);
119 struct symbol *(*iterator_next) (struct dict_iterator *iterator);
123 struct dict_iterator *iterator);
125 struct dict_iterator *iterator);
215 /* The dictionary that the iterator is associated to. */
237 struct dict_iterator *iterator);
239 static struct symbol *iterator_next_hashed (struct dict_iterator *iterator);
243 struct dict_iterator *iterator);
246 struct dict_iterator *iterator);
265 struct dict_iterator *iterator);
267 static struct symbol *iterator_next_linear (struct dict_iterator *iterator);
271 struct dict_iterator *iterator);
274 struct dict_iterator *iterator);
501 struct dict_iterator *iterator)
503 return (DICT_VECTOR (dict))->iterator_first (dict, iterator);
510 dict_iterator_next (struct dict_iterator *iterator)
512 return (DICT_VECTOR (DICT_ITERATOR_DICT (iterator)))
513 ->iterator_next (iterator);
519 struct dict_iterator *iterator)
521 return (DICT_VECTOR (dict))->iter_name_first (dict, name, iterator);
525 dict_iter_name_next (const char *name, struct dict_iterator *iterator)
527 return (DICT_VECTOR (DICT_ITERATOR_DICT (iterator)))
528 ->iter_name_next (name, iterator);
573 struct dict_iterator *iterator)
575 DICT_ITERATOR_DICT (iterator) = dict;
576 DICT_ITERATOR_INDEX (iterator) = -1;
577 return iterator_hashed_advance (iterator);
581 iterator_next_hashed (struct dict_iterator *iterator)
583 const struct dictionary *dict = DICT_ITERATOR_DICT (iterator);
586 next = DICT_ITERATOR_CURRENT (iterator)->hash_next;
589 return iterator_hashed_advance (iterator);
592 DICT_ITERATOR_CURRENT (iterator) = next;
598 iterator_hashed_advance (struct dict_iterator *iterator)
600 const struct dictionary *dict = DICT_ITERATOR_DICT (iterator);
604 for (i = DICT_ITERATOR_INDEX (iterator) + 1; i < nbuckets; ++i)
610 DICT_ITERATOR_INDEX (iterator) = i;
611 DICT_ITERATOR_CURRENT (iterator) = sym;
622 struct dict_iterator *iterator)
628 DICT_ITERATOR_DICT (iterator) = dict;
646 DICT_ITERATOR_CURRENT (iterator) = sym;
651 iter_name_next_hashed (const char *name, struct dict_iterator *iterator)
655 for (next = DICT_ITERATOR_CURRENT (iterator)->hash_next;
663 DICT_ITERATOR_CURRENT (iterator) = next;
753 struct dict_iterator *iterator)
755 DICT_ITERATOR_DICT (iterator) = dict;
756 DICT_ITERATOR_INDEX (iterator) = 0;
761 iterator_next_linear (struct dict_iterator *iterator)
763 const struct dictionary *dict = DICT_ITERATOR_DICT (iterator);
765 if (++DICT_ITERATOR_INDEX (iterator) >= DICT_LINEAR_NSYMS (dict))
768 return DICT_LINEAR_SYM (dict, DICT_ITERATOR_INDEX (iterator));
774 struct dict_iterator *iterator)
776 DICT_ITERATOR_DICT (iterator) = dict;
777 DICT_ITERATOR_INDEX (iterator) = -1;
779 return iter_name_next_linear (name, iterator);
783 iter_name_next_linear (const char *name, struct dict_iterator *iterator)
785 const struct dictionary *dict = DICT_ITERATOR_DICT (iterator);
789 for (i = DICT_ITERATOR_INDEX (iterator) + 1; i < nsyms; ++i)
799 DICT_ITERATOR_INDEX (iterator) = i;