Lines Matching refs:pos
49 register Hash_position_t* pos; in hashscan() local
53 if (!(pos = newof(0, Hash_position_t, 1, 0))) return(0); in hashscan()
54 pos->tab = tab->root->last.table = tab; in hashscan()
55 pos->bucket = ∅ in hashscan()
56 pos->slot = tab->table - 1; in hashscan()
57 pos->limit = tab->table + tab->size; in hashscan()
60 pos->flags = HASH_SCOPE; in hashscan()
75 tab = pos->tab; in hashscan()
77 else pos->flags = 0; in hashscan()
79 return(pos); in hashscan()
87 hashnext(register Hash_position_t* pos) in hashnext() argument
91 if (!pos) return(0); in hashnext()
92 b = pos->bucket; in hashnext()
99 if (++pos->slot >= pos->limit) in hashnext()
101 pos->tab->frozen--; in hashnext()
102 if (!pos->flags || !pos->tab->scope) return(0); in hashnext()
103 pos->tab = pos->tab->scope; in hashnext()
104 pos->tab->root->last.table = pos->tab; in hashnext()
105 pos->limit = (pos->slot = pos->tab->table) + pos->tab->size; in hashnext()
106 pos->tab->frozen++; in hashnext()
108 } while (!(b = *pos->slot)); in hashnext()
110 …if (!(b->hash & HASH_DELETED) && (!(pos->tab->flags & HASH_VALUE) || b->value) && (!pos->flags || … in hashnext()
123 return(pos->tab->root->last.bucket = pos->bucket = b); in hashnext()
131 hashdone(register Hash_position_t* pos) in hashdone() argument
133 if (pos) in hashdone()
135 if (pos->tab->frozen) in hashdone()
136 pos->tab->frozen--; in hashdone()
137 free(pos); in hashdone()