Lines Matching refs:entry

136     _Py_hashtable_entry_t *entry = TABLE_HEAD(ht, index);
138 if (entry == NULL) {
141 if (entry->key_hash == key_hash && ht->compare_func(key, entry->key)) {
144 entry = ENTRY_NEXT(entry);
146 return entry;
158 _Py_hashtable_entry_t *entry = TABLE_HEAD(ht, index);
160 if (entry == NULL) {
163 // Compare directly keys (ignore entry->key_hash)
164 if (entry->key == key) {
167 entry = ENTRY_NEXT(entry);
169 return entry;
179 _Py_hashtable_entry_t *entry = TABLE_HEAD(ht, index);
182 if (entry == NULL) {
186 if (entry->key_hash == key_hash && ht->compare_func(key, entry->key)) {
189 previous = entry;
190 entry = ENTRY_NEXT(entry);
194 (_Py_slist_item_t *)entry);
197 void *value = entry->value;
198 ht->alloc.free(entry);
211 _Py_hashtable_entry_t *entry;
215 to know the duplicated entry if the assertion failed. The entry can
217 entry = ht->get_entry_func(ht, key);
218 assert(entry == NULL);
222 entry = ht->alloc.malloc(sizeof(_Py_hashtable_entry_t));
223 if (entry == NULL) {
228 entry->key_hash = ht->hash_func(key);
229 entry->key = (void *)key;
230 entry->value = value;
236 ht->alloc.free(entry);
241 size_t index = entry->key_hash & (ht->nbuckets - 1);
242 _Py_slist_prepend(&ht->buckets[index], (_Py_slist_item_t*)entry);
250 _Py_hashtable_entry_t *entry = ht->get_entry_func(ht, key);
251 if (entry != NULL) {
252 return entry->value;
266 _Py_hashtable_entry_t *entry = TABLE_HEAD(ht, hv);
267 while (entry != NULL) {
268 int res = func(ht, entry->key, entry->value, user_data);
272 entry = ENTRY_NEXT(entry);
296 _Py_hashtable_entry_t *entry = BUCKETS_HEAD(ht->buckets[bucket]);
297 while (entry != NULL) {
298 assert(ht->hash_func(entry->key) == entry->key_hash);
299 _Py_hashtable_entry_t *next = ENTRY_NEXT(entry);
300 size_t entry_index = entry->key_hash & (new_size - 1);
302 _Py_slist_prepend(&new_buckets[entry_index], (_Py_slist_item_t*)entry);
304 entry = next;
372 _Py_hashtable_destroy_entry(_Py_hashtable_t *ht, _Py_hashtable_entry_t *entry)
375 ht->key_destroy_func(entry->key);
378 ht->value_destroy_func(entry->value);
380 ht->alloc.free(entry);
388 _Py_hashtable_entry_t *entry = TABLE_HEAD(ht, i);
389 while (entry != NULL) {
390 _Py_hashtable_entry_t *next = ENTRY_NEXT(entry);
391 _Py_hashtable_destroy_entry(ht, entry);
392 entry = next;
407 _Py_hashtable_entry_t *entry = TABLE_HEAD(ht, i);
408 while (entry) {
409 _Py_hashtable_entry_t *entry_next = ENTRY_NEXT(entry);
410 _Py_hashtable_destroy_entry(ht, entry);
411 entry = entry_next;