Lines Matching refs:ht

46 #define HT_FLAGS(ht) (ht)->u.flags  argument
48 #define HT_INVALIDATE(ht) do { \ argument
49 HT_FLAGS(ht) = HASH_FLAG_UNINITIALIZED; \
52 #define HT_IS_INITIALIZED(ht) \ argument
53 ((HT_FLAGS(ht) & HASH_FLAG_UNINITIALIZED) == 0)
55 #define HT_IS_PACKED(ht) \ argument
56 ((HT_FLAGS(ht) & HASH_FLAG_PACKED) != 0)
58 #define HT_IS_WITHOUT_HOLES(ht) \ argument
59 ((ht)->nNumUsed == (ht)->nNumOfElements)
61 #define HT_HAS_STATIC_KEYS_ONLY(ht) \ argument
62 ((HT_FLAGS(ht) & (HASH_FLAG_PACKED|HASH_FLAG_STATIC_KEYS)) != 0)
65 # define HT_ALLOW_COW_VIOLATION(ht) HT_FLAGS(ht) |= HASH_FLAG_ALLOW_COW_VIOLATION argument
67 # define HT_ALLOW_COW_VIOLATION(ht) argument
70 #define HT_ITERATORS_COUNT(ht) (ht)->u.v.nIteratorsCount argument
71 #define HT_ITERATORS_OVERFLOW(ht) (HT_ITERATORS_COUNT(ht) == 0xff) argument
72 #define HT_HAS_ITERATORS(ht) (HT_ITERATORS_COUNT(ht) != 0) argument
74 #define HT_SET_ITERATORS_COUNT(ht, iters) \ argument
75 do { HT_ITERATORS_COUNT(ht) = (iters); } while (0)
76 #define HT_INC_ITERATORS_COUNT(ht) \ argument
77 HT_SET_ITERATORS_COUNT(ht, HT_ITERATORS_COUNT(ht) + 1)
78 #define HT_DEC_ITERATORS_COUNT(ht) \ argument
79 HT_SET_ITERATORS_COUNT(ht, HT_ITERATORS_COUNT(ht) - 1)
100 ZEND_API void ZEND_FASTCALL _zend_hash_init(HashTable *ht, uint32_t nSize, dtor_func_t pDestructor,…
101 ZEND_API void ZEND_FASTCALL zend_hash_destroy(HashTable *ht);
102 ZEND_API void ZEND_FASTCALL zend_hash_clean(HashTable *ht);
104 #define zend_hash_init(ht, nSize, pHashFunction, pDestructor, persistent) \ argument
105 _zend_hash_init((ht), (nSize), (pDestructor), (persistent))
106 #define zend_hash_init_ex(ht, nSize, pHashFunction, pDestructor, persistent, bApplyProtection) \ argument
107 _zend_hash_init((ht), (nSize), (pDestructor), (persistent))
109 ZEND_API void ZEND_FASTCALL zend_hash_real_init(HashTable *ht, zend_bool packed);
110 ZEND_API void ZEND_FASTCALL zend_hash_real_init_packed(HashTable *ht);
111 ZEND_API void ZEND_FASTCALL zend_hash_real_init_mixed(HashTable *ht);
112 ZEND_API void ZEND_FASTCALL zend_hash_packed_to_hash(HashTable *ht);
113 ZEND_API void ZEND_FASTCALL zend_hash_to_packed(HashTable *ht);
114 ZEND_API void ZEND_FASTCALL zend_hash_extend(HashTable *ht, uint32_t nSize, zend_bool packed);
115 ZEND_API void ZEND_FASTCALL zend_hash_discard(HashTable *ht, uint32_t nNumUsed);
118 ZEND_API zval* ZEND_FASTCALL zend_hash_add_or_update(HashTable *ht, zend_string *key, zval *pData, …
119 ZEND_API zval* ZEND_FASTCALL zend_hash_update(HashTable *ht, zend_string *key,zval *pData);
120 ZEND_API zval* ZEND_FASTCALL zend_hash_update_ind(HashTable *ht, zend_string *key,zval *pData);
121 ZEND_API zval* ZEND_FASTCALL zend_hash_add(HashTable *ht, zend_string *key,zval *pData);
122 ZEND_API zval* ZEND_FASTCALL zend_hash_add_new(HashTable *ht, zend_string *key,zval *pData);
124 ZEND_API zval* ZEND_FASTCALL zend_hash_str_add_or_update(HashTable *ht, const char *key, size_t len…
125 ZEND_API zval* ZEND_FASTCALL zend_hash_str_update(HashTable *ht, const char *key, size_t len, zval …
126 ZEND_API zval* ZEND_FASTCALL zend_hash_str_update_ind(HashTable *ht, const char *key, size_t len, z…
127 ZEND_API zval* ZEND_FASTCALL zend_hash_str_add(HashTable *ht, const char *key, size_t len, zval *pD…
128 ZEND_API zval* ZEND_FASTCALL zend_hash_str_add_new(HashTable *ht, const char *key, size_t len, zval…
130 ZEND_API zval* ZEND_FASTCALL zend_hash_index_add_or_update(HashTable *ht, zend_ulong h, zval *pData…
131 ZEND_API zval* ZEND_FASTCALL zend_hash_index_add(HashTable *ht, zend_ulong h, zval *pData);
132 ZEND_API zval* ZEND_FASTCALL zend_hash_index_add_new(HashTable *ht, zend_ulong h, zval *pData);
133 ZEND_API zval* ZEND_FASTCALL zend_hash_index_update(HashTable *ht, zend_ulong h, zval *pData);
134 ZEND_API zval* ZEND_FASTCALL zend_hash_next_index_insert(HashTable *ht, zval *pData);
135 ZEND_API zval* ZEND_FASTCALL zend_hash_next_index_insert_new(HashTable *ht, zval *pData);
137 ZEND_API zval* ZEND_FASTCALL zend_hash_index_add_empty_element(HashTable *ht, zend_ulong h);
138 ZEND_API zval* ZEND_FASTCALL zend_hash_add_empty_element(HashTable *ht, zend_string *key);
139 ZEND_API zval* ZEND_FASTCALL zend_hash_str_add_empty_element(HashTable *ht, const char *key, size_t…
141 ZEND_API zval* ZEND_FASTCALL zend_hash_set_bucket_key(HashTable *ht, Bucket *p, zend_string *key);
151 ZEND_API void ZEND_FASTCALL zend_hash_graceful_destroy(HashTable *ht);
152 ZEND_API void ZEND_FASTCALL zend_hash_graceful_reverse_destroy(HashTable *ht);
153 ZEND_API void ZEND_FASTCALL zend_hash_apply(HashTable *ht, apply_func_t apply_func);
154 ZEND_API void ZEND_FASTCALL zend_hash_apply_with_argument(HashTable *ht, apply_func_arg_t apply_fun…
155 ZEND_API void zend_hash_apply_with_arguments(HashTable *ht, apply_func_args_t apply_func, int, ...);
163 ZEND_API void ZEND_FASTCALL zend_hash_reverse_apply(HashTable *ht, apply_func_t apply_func);
167 ZEND_API int ZEND_FASTCALL zend_hash_del(HashTable *ht, zend_string *key);
168 ZEND_API int ZEND_FASTCALL zend_hash_del_ind(HashTable *ht, zend_string *key);
169 ZEND_API int ZEND_FASTCALL zend_hash_str_del(HashTable *ht, const char *key, size_t len);
170 ZEND_API int ZEND_FASTCALL zend_hash_str_del_ind(HashTable *ht, const char *key, size_t len);
171 ZEND_API int ZEND_FASTCALL zend_hash_index_del(HashTable *ht, zend_ulong h);
172 ZEND_API void ZEND_FASTCALL zend_hash_del_bucket(HashTable *ht, Bucket *p);
175 ZEND_API zval* ZEND_FASTCALL zend_hash_find(const HashTable *ht, zend_string *key);
176 ZEND_API zval* ZEND_FASTCALL zend_hash_str_find(const HashTable *ht, const char *key, size_t len);
177 ZEND_API zval* ZEND_FASTCALL zend_hash_index_find(const HashTable *ht, zend_ulong h);
178 ZEND_API zval* ZEND_FASTCALL _zend_hash_index_find(const HashTable *ht, zend_ulong h);
181 ZEND_API zval* ZEND_FASTCALL _zend_hash_find_known_hash(const HashTable *ht, zend_string *key);
183 static zend_always_inline zval *zend_hash_find_ex(const HashTable *ht, zend_string *key, zend_bool … in zend_hash_find_ex() argument
186 return _zend_hash_find_known_hash(ht, key); in zend_hash_find_ex()
188 return zend_hash_find(ht, key); in zend_hash_find_ex()
212 static zend_always_inline zend_bool zend_hash_exists(const HashTable *ht, zend_string *key) in zend_hash_exists() argument
214 return zend_hash_find(ht, key) != NULL; in zend_hash_exists()
217 static zend_always_inline zend_bool zend_hash_str_exists(const HashTable *ht, const char *str, size… in zend_hash_str_exists() argument
219 return zend_hash_str_find(ht, str, len) != NULL; in zend_hash_str_exists()
222 static zend_always_inline zend_bool zend_hash_index_exists(const HashTable *ht, zend_ulong h) in zend_hash_index_exists() argument
224 return zend_hash_index_find(ht, h) != NULL; in zend_hash_index_exists()
228 ZEND_API HashPosition ZEND_FASTCALL zend_hash_get_current_pos(const HashTable *ht);
230 #define zend_hash_has_more_elements_ex(ht, pos) \ argument
231 (zend_hash_get_current_key_type_ex(ht, pos) == HASH_KEY_NON_EXISTENT ? FAILURE : SUCCESS)
232 ZEND_API int ZEND_FASTCALL zend_hash_move_forward_ex(HashTable *ht, HashPosition *pos);
233 ZEND_API int ZEND_FASTCALL zend_hash_move_backwards_ex(HashTable *ht, HashPosition *pos);
234 ZEND_API int ZEND_FASTCALL zend_hash_get_current_key_ex(const HashTable *ht, zend_string **str_in…
235 ZEND_API void ZEND_FASTCALL zend_hash_get_current_key_zval_ex(const HashTable *ht, zval *key, Hash…
236 ZEND_API int ZEND_FASTCALL zend_hash_get_current_key_type_ex(HashTable *ht, HashPosition *pos);
237 ZEND_API zval* ZEND_FASTCALL zend_hash_get_current_data_ex(HashTable *ht, HashPosition *pos);
238 ZEND_API void ZEND_FASTCALL zend_hash_internal_pointer_reset_ex(HashTable *ht, HashPosition *pos);
239 ZEND_API void ZEND_FASTCALL zend_hash_internal_pointer_end_ex(HashTable *ht, HashPosition *pos);
241 #define zend_hash_has_more_elements(ht) \ argument
242 zend_hash_has_more_elements_ex(ht, &(ht)->nInternalPointer)
243 #define zend_hash_move_forward(ht) \ argument
244 zend_hash_move_forward_ex(ht, &(ht)->nInternalPointer)
245 #define zend_hash_move_backwards(ht) \ argument
246 zend_hash_move_backwards_ex(ht, &(ht)->nInternalPointer)
247 #define zend_hash_get_current_key(ht, str_index, num_index) \ argument
248 zend_hash_get_current_key_ex(ht, str_index, num_index, &(ht)->nInternalPointer)
249 #define zend_hash_get_current_key_zval(ht, key) \ argument
250 zend_hash_get_current_key_zval_ex(ht, key, &(ht)->nInternalPointer)
251 #define zend_hash_get_current_key_type(ht) \ argument
252 zend_hash_get_current_key_type_ex(ht, &(ht)->nInternalPointer)
253 #define zend_hash_get_current_data(ht) \ argument
254 zend_hash_get_current_data_ex(ht, &(ht)->nInternalPointer)
255 #define zend_hash_internal_pointer_reset(ht) \ argument
256 zend_hash_internal_pointer_reset_ex(ht, &(ht)->nInternalPointer)
257 #define zend_hash_internal_pointer_end(ht) \ argument
258 zend_hash_internal_pointer_end_ex(ht, &(ht)->nInternalPointer)
268 ZEND_API int ZEND_FASTCALL zend_hash_sort_ex(HashTable *ht, sort_func_t sort_func, compare_func_t…
269 ZEND_API zval* ZEND_FASTCALL zend_hash_minmax(const HashTable *ht, compare_func_t compar, uint32_t …
271 #define zend_hash_sort(ht, compare_func, renumber) \ argument
272 zend_hash_sort_ex(ht, zend_sort, compare_func, renumber)
274 #define zend_hash_num_elements(ht) \ argument
275 (ht)->nNumOfElements
277 #define zend_hash_next_free_element(ht) \ argument
278 (ht)->nNextFreeElement
280 ZEND_API int ZEND_FASTCALL zend_hash_rehash(HashTable *ht);
301 ZEND_API uint32_t zend_array_count(HashTable *ht);
303 ZEND_API void ZEND_FASTCALL zend_array_destroy(HashTable *ht);
304 ZEND_API void ZEND_FASTCALL zend_symtable_clean(HashTable *ht);
305 ZEND_API HashTable* ZEND_FASTCALL zend_symtable_to_proptable(HashTable *ht);
306 ZEND_API HashTable* ZEND_FASTCALL zend_proptable_to_symtable(HashTable *ht, zend_bool always_duplic…
310 ZEND_API uint32_t ZEND_FASTCALL zend_hash_iterator_add(HashTable *ht, HashPosition pos);
311 ZEND_API HashPosition ZEND_FASTCALL zend_hash_iterator_pos(uint32_t idx, HashTable *ht);
314 ZEND_API HashPosition ZEND_FASTCALL zend_hash_iterators_lower_pos(HashTable *ht, HashPosition start…
315 ZEND_API void ZEND_FASTCALL _zend_hash_iterators_update(HashTable *ht, HashPosition from, H…
316 ZEND_API void ZEND_FASTCALL zend_hash_iterators_advance(HashTable *ht, HashPosition step);
318 static zend_always_inline void zend_hash_iterators_update(HashTable *ht, HashPosition from, HashPos… in zend_hash_iterators_update() argument
320 if (UNEXPECTED(HT_HAS_ITERATORS(ht))) { in zend_hash_iterators_update()
321 _zend_hash_iterators_update(ht, from, to); in zend_hash_iterators_update()
328 #define ZEND_INIT_SYMTABLE(ht) \ in END_EXTERN_C() argument
329 ZEND_INIT_SYMTABLE_EX(ht, 8, 0) in END_EXTERN_C()
331 #define ZEND_INIT_SYMTABLE_EX(ht, n, persistent) \ in END_EXTERN_C() argument
332 zend_hash_init(ht, n, NULL, ZVAL_PTR_DTOR, persistent) in END_EXTERN_C()
359 static zend_always_inline zval *zend_hash_find_ind(const HashTable *ht, zend_string *key) in zend_hash_find_ind() argument
363 zv = zend_hash_find(ht, key); in zend_hash_find_ind()
369 static zend_always_inline zval *zend_hash_find_ex_ind(const HashTable *ht, zend_string *key, zend_b… in zend_hash_find_ex_ind() argument
373 zv = zend_hash_find_ex(ht, key, known_hash); in zend_hash_find_ex_ind()
379 static zend_always_inline int zend_hash_exists_ind(const HashTable *ht, zend_string *key) in zend_hash_exists_ind() argument
383 zv = zend_hash_find(ht, key); in zend_hash_exists_ind()
389 static zend_always_inline zval *zend_hash_str_find_ind(const HashTable *ht, const char *str, size_t… in zend_hash_str_find_ind() argument
393 zv = zend_hash_str_find(ht, str, len); in zend_hash_str_find_ind()
399 static zend_always_inline int zend_hash_str_exists_ind(const HashTable *ht, const char *str, size_t… in zend_hash_str_exists_ind() argument
403 zv = zend_hash_str_find(ht, str, len); in zend_hash_str_exists_ind()
408 static zend_always_inline zval *zend_symtable_add_new(HashTable *ht, zend_string *key, zval *pData) in zend_symtable_add_new() argument
413 return zend_hash_index_add_new(ht, idx, pData); in zend_symtable_add_new()
415 return zend_hash_add_new(ht, key, pData); in zend_symtable_add_new()
419 static zend_always_inline zval *zend_symtable_update(HashTable *ht, zend_string *key, zval *pData) in zend_symtable_update() argument
424 return zend_hash_index_update(ht, idx, pData); in zend_symtable_update()
426 return zend_hash_update(ht, key, pData); in zend_symtable_update()
431 static zend_always_inline zval *zend_symtable_update_ind(HashTable *ht, zend_string *key, zval *pDa… in zend_symtable_update_ind() argument
436 return zend_hash_index_update(ht, idx, pData); in zend_symtable_update_ind()
438 return zend_hash_update_ind(ht, key, pData); in zend_symtable_update_ind()
443 static zend_always_inline int zend_symtable_del(HashTable *ht, zend_string *key) in zend_symtable_del() argument
448 return zend_hash_index_del(ht, idx); in zend_symtable_del()
450 return zend_hash_del(ht, key); in zend_symtable_del()
455 static zend_always_inline int zend_symtable_del_ind(HashTable *ht, zend_string *key) in zend_symtable_del_ind() argument
460 return zend_hash_index_del(ht, idx); in zend_symtable_del_ind()
462 return zend_hash_del_ind(ht, key); in zend_symtable_del_ind()
467 static zend_always_inline zval *zend_symtable_find(const HashTable *ht, zend_string *key) in zend_symtable_find() argument
472 return zend_hash_index_find(ht, idx); in zend_symtable_find()
474 return zend_hash_find(ht, key); in zend_symtable_find()
479 static zend_always_inline zval *zend_symtable_find_ind(const HashTable *ht, zend_string *key) in zend_symtable_find_ind() argument
484 return zend_hash_index_find(ht, idx); in zend_symtable_find_ind()
486 return zend_hash_find_ind(ht, key); in zend_symtable_find_ind()
491 static zend_always_inline int zend_symtable_exists(HashTable *ht, zend_string *key) in zend_symtable_exists() argument
496 return zend_hash_index_exists(ht, idx); in zend_symtable_exists()
498 return zend_hash_exists(ht, key); in zend_symtable_exists()
503 static zend_always_inline int zend_symtable_exists_ind(HashTable *ht, zend_string *key) in zend_symtable_exists_ind() argument
508 return zend_hash_index_exists(ht, idx); in zend_symtable_exists_ind()
510 return zend_hash_exists_ind(ht, key); in zend_symtable_exists_ind()
515 static zend_always_inline zval *zend_symtable_str_update(HashTable *ht, const char *str, size_t len… in zend_symtable_str_update() argument
520 return zend_hash_index_update(ht, idx, pData); in zend_symtable_str_update()
522 return zend_hash_str_update(ht, str, len, pData); in zend_symtable_str_update()
527 static zend_always_inline zval *zend_symtable_str_update_ind(HashTable *ht, const char *str, size_t… in zend_symtable_str_update_ind() argument
532 return zend_hash_index_update(ht, idx, pData); in zend_symtable_str_update_ind()
534 return zend_hash_str_update_ind(ht, str, len, pData); in zend_symtable_str_update_ind()
539 static zend_always_inline int zend_symtable_str_del(HashTable *ht, const char *str, size_t len) in zend_symtable_str_del() argument
544 return zend_hash_index_del(ht, idx); in zend_symtable_str_del()
546 return zend_hash_str_del(ht, str, len); in zend_symtable_str_del()
551 static zend_always_inline int zend_symtable_str_del_ind(HashTable *ht, const char *str, size_t len) in zend_symtable_str_del_ind() argument
556 return zend_hash_index_del(ht, idx); in zend_symtable_str_del_ind()
558 return zend_hash_str_del_ind(ht, str, len); in zend_symtable_str_del_ind()
563 static zend_always_inline zval *zend_symtable_str_find(HashTable *ht, const char *str, size_t len) in zend_symtable_str_find() argument
568 return zend_hash_index_find(ht, idx); in zend_symtable_str_find()
570 return zend_hash_str_find(ht, str, len); in zend_symtable_str_find()
575 static zend_always_inline int zend_symtable_str_exists(HashTable *ht, const char *str, size_t len) in zend_symtable_str_exists() argument
580 return zend_hash_index_exists(ht, idx); in zend_symtable_str_exists()
582 return zend_hash_str_exists(ht, str, len); in zend_symtable_str_exists()
586 static zend_always_inline void *zend_hash_add_ptr(HashTable *ht, zend_string *key, void *pData) in zend_hash_add_ptr() argument
591 zv = zend_hash_add(ht, key, &tmp); in zend_hash_add_ptr()
600 static zend_always_inline void *zend_hash_add_new_ptr(HashTable *ht, zend_string *key, void *pData) in zend_hash_add_new_ptr() argument
605 zv = zend_hash_add_new(ht, key, &tmp); in zend_hash_add_new_ptr()
614 static zend_always_inline void *zend_hash_str_add_ptr(HashTable *ht, const char *str, size_t len, v… in zend_hash_str_add_ptr() argument
619 zv = zend_hash_str_add(ht, str, len, &tmp); in zend_hash_str_add_ptr()
628 static zend_always_inline void *zend_hash_str_add_new_ptr(HashTable *ht, const char *str, size_t le… in zend_hash_str_add_new_ptr() argument
633 zv = zend_hash_str_add_new(ht, str, len, &tmp); in zend_hash_str_add_new_ptr()
642 static zend_always_inline void *zend_hash_update_ptr(HashTable *ht, zend_string *key, void *pData) in zend_hash_update_ptr() argument
647 zv = zend_hash_update(ht, key, &tmp); in zend_hash_update_ptr()
652 static zend_always_inline void *zend_hash_str_update_ptr(HashTable *ht, const char *str, size_t len… in zend_hash_str_update_ptr() argument
657 zv = zend_hash_str_update(ht, str, len, &tmp); in zend_hash_str_update_ptr()
662 static zend_always_inline void *zend_hash_add_mem(HashTable *ht, zend_string *key, void *pData, siz… in zend_hash_add_mem() argument
667 if ((zv = zend_hash_add(ht, key, &tmp))) { in zend_hash_add_mem()
668 Z_PTR_P(zv) = pemalloc(size, GC_FLAGS(ht) & IS_ARRAY_PERSISTENT); in zend_hash_add_mem()
675 static zend_always_inline void *zend_hash_add_new_mem(HashTable *ht, zend_string *key, void *pData,… in zend_hash_add_new_mem() argument
680 if ((zv = zend_hash_add_new(ht, key, &tmp))) { in zend_hash_add_new_mem()
681 Z_PTR_P(zv) = pemalloc(size, GC_FLAGS(ht) & IS_ARRAY_PERSISTENT); in zend_hash_add_new_mem()
688 static zend_always_inline void *zend_hash_str_add_mem(HashTable *ht, const char *str, size_t len, v… in zend_hash_str_add_mem() argument
693 if ((zv = zend_hash_str_add(ht, str, len, &tmp))) { in zend_hash_str_add_mem()
694 Z_PTR_P(zv) = pemalloc(size, GC_FLAGS(ht) & IS_ARRAY_PERSISTENT); in zend_hash_str_add_mem()
701 static zend_always_inline void *zend_hash_str_add_new_mem(HashTable *ht, const char *str, size_t le… in zend_hash_str_add_new_mem() argument
706 if ((zv = zend_hash_str_add_new(ht, str, len, &tmp))) { in zend_hash_str_add_new_mem()
707 Z_PTR_P(zv) = pemalloc(size, GC_FLAGS(ht) & IS_ARRAY_PERSISTENT); in zend_hash_str_add_new_mem()
714 static zend_always_inline void *zend_hash_update_mem(HashTable *ht, zend_string *key, void *pData, … in zend_hash_update_mem() argument
718 p = pemalloc(size, GC_FLAGS(ht) & IS_ARRAY_PERSISTENT); in zend_hash_update_mem()
720 return zend_hash_update_ptr(ht, key, p); in zend_hash_update_mem()
723 static zend_always_inline void *zend_hash_str_update_mem(HashTable *ht, const char *str, size_t len… in zend_hash_str_update_mem() argument
727 p = pemalloc(size, GC_FLAGS(ht) & IS_ARRAY_PERSISTENT); in zend_hash_str_update_mem()
729 return zend_hash_str_update_ptr(ht, str, len, p); in zend_hash_str_update_mem()
732 static zend_always_inline void *zend_hash_index_add_ptr(HashTable *ht, zend_ulong h, void *pData) in zend_hash_index_add_ptr() argument
737 zv = zend_hash_index_add(ht, h, &tmp); in zend_hash_index_add_ptr()
741 static zend_always_inline void *zend_hash_index_add_new_ptr(HashTable *ht, zend_ulong h, void *pDat… in zend_hash_index_add_new_ptr() argument
746 zv = zend_hash_index_add_new(ht, h, &tmp); in zend_hash_index_add_new_ptr()
750 static zend_always_inline void *zend_hash_index_update_ptr(HashTable *ht, zend_ulong h, void *pData) in zend_hash_index_update_ptr() argument
755 zv = zend_hash_index_update(ht, h, &tmp); in zend_hash_index_update_ptr()
760 static zend_always_inline void *zend_hash_index_add_mem(HashTable *ht, zend_ulong h, void *pData, s… in zend_hash_index_add_mem() argument
765 if ((zv = zend_hash_index_add(ht, h, &tmp))) { in zend_hash_index_add_mem()
766 Z_PTR_P(zv) = pemalloc(size, GC_FLAGS(ht) & IS_ARRAY_PERSISTENT); in zend_hash_index_add_mem()
773 static zend_always_inline void *zend_hash_next_index_insert_ptr(HashTable *ht, void *pData) in zend_hash_next_index_insert_ptr() argument
778 zv = zend_hash_next_index_insert(ht, &tmp); in zend_hash_next_index_insert_ptr()
787 static zend_always_inline void *zend_hash_index_update_mem(HashTable *ht, zend_ulong h, void *pData… in zend_hash_index_update_mem() argument
791 p = pemalloc(size, GC_FLAGS(ht) & IS_ARRAY_PERSISTENT); in zend_hash_index_update_mem()
793 return zend_hash_index_update_ptr(ht, h, p); in zend_hash_index_update_mem()
796 static zend_always_inline void *zend_hash_next_index_insert_mem(HashTable *ht, void *pData, size_t … in zend_hash_next_index_insert_mem() argument
801 if ((zv = zend_hash_next_index_insert(ht, &tmp))) { in zend_hash_next_index_insert_mem()
802 Z_PTR_P(zv) = pemalloc(size, GC_FLAGS(ht) & IS_ARRAY_PERSISTENT); in zend_hash_next_index_insert_mem()
809 static zend_always_inline void *zend_hash_find_ptr(const HashTable *ht, zend_string *key) in zend_hash_find_ptr() argument
813 zv = zend_hash_find(ht, key); in zend_hash_find_ptr()
822 static zend_always_inline void *zend_hash_find_ex_ptr(const HashTable *ht, zend_string *key, zend_b… in zend_hash_find_ex_ptr() argument
826 zv = zend_hash_find_ex(ht, key, known_hash); in zend_hash_find_ex_ptr()
835 static zend_always_inline void *zend_hash_str_find_ptr(const HashTable *ht, const char *str, size_t… in zend_hash_str_find_ptr() argument
839 zv = zend_hash_str_find(ht, str, len); in zend_hash_str_find_ptr()
848 static zend_always_inline void *zend_hash_index_find_ptr(const HashTable *ht, zend_ulong h) in zend_hash_index_find_ptr() argument
852 zv = zend_hash_index_find(ht, h); in zend_hash_index_find_ptr()
861 static zend_always_inline zval *zend_hash_index_find_deref(HashTable *ht, zend_ulong h) in zend_hash_index_find_deref() argument
863 zval *zv = zend_hash_index_find(ht, h); in zend_hash_index_find_deref()
870 static zend_always_inline zval *zend_hash_find_deref(HashTable *ht, zend_string *str) in zend_hash_find_deref() argument
872 zval *zv = zend_hash_find(ht, str); in zend_hash_find_deref()
879 static zend_always_inline zval *zend_hash_str_find_deref(HashTable *ht, const char *str, size_t len) in zend_hash_str_find_deref() argument
881 zval *zv = zend_hash_str_find(ht, str, len); in zend_hash_str_find_deref()
888 static zend_always_inline void *zend_symtable_str_find_ptr(HashTable *ht, const char *str, size_t l… in zend_symtable_str_find_ptr() argument
893 return zend_hash_index_find_ptr(ht, idx); in zend_symtable_str_find_ptr()
895 return zend_hash_str_find_ptr(ht, str, len); in zend_symtable_str_find_ptr()
899 static zend_always_inline void *zend_hash_get_current_data_ptr_ex(HashTable *ht, HashPosition *pos) in zend_hash_get_current_data_ptr_ex() argument
903 zv = zend_hash_get_current_data_ex(ht, pos); in zend_hash_get_current_data_ptr_ex()
912 #define zend_hash_get_current_data_ptr(ht) \ argument
913 zend_hash_get_current_data_ptr_ex(ht, &(ht)->nInternalPointer)
964 #define ZEND_HASH_FOREACH_BUCKET(ht, _bucket) \ argument
965 ZEND_HASH_FOREACH(ht, 0); \
968 #define ZEND_HASH_FOREACH_VAL(ht, _val) \ argument
969 ZEND_HASH_FOREACH(ht, 0); \
972 #define ZEND_HASH_FOREACH_VAL_IND(ht, _val) \ argument
973 ZEND_HASH_FOREACH(ht, 1); \
976 #define ZEND_HASH_FOREACH_PTR(ht, _ptr) \ argument
977 ZEND_HASH_FOREACH(ht, 0); \
980 #define ZEND_HASH_FOREACH_NUM_KEY(ht, _h) \ argument
981 ZEND_HASH_FOREACH(ht, 0); \
984 #define ZEND_HASH_FOREACH_STR_KEY(ht, _key) \ argument
985 ZEND_HASH_FOREACH(ht, 0); \
988 #define ZEND_HASH_FOREACH_KEY(ht, _h, _key) \ argument
989 ZEND_HASH_FOREACH(ht, 0); \
993 #define ZEND_HASH_FOREACH_NUM_KEY_VAL(ht, _h, _val) \ argument
994 ZEND_HASH_FOREACH(ht, 0); \
998 #define ZEND_HASH_FOREACH_STR_KEY_VAL(ht, _key, _val) \ argument
999 ZEND_HASH_FOREACH(ht, 0); \
1003 #define ZEND_HASH_FOREACH_KEY_VAL(ht, _h, _key, _val) \ argument
1004 ZEND_HASH_FOREACH(ht, 0); \
1009 #define ZEND_HASH_FOREACH_STR_KEY_VAL_IND(ht, _key, _val) \ argument
1010 ZEND_HASH_FOREACH(ht, 1); \
1014 #define ZEND_HASH_FOREACH_KEY_VAL_IND(ht, _h, _key, _val) \ argument
1015 ZEND_HASH_FOREACH(ht, 1); \
1020 #define ZEND_HASH_FOREACH_NUM_KEY_PTR(ht, _h, _ptr) \ argument
1021 ZEND_HASH_FOREACH(ht, 0); \
1025 #define ZEND_HASH_FOREACH_STR_KEY_PTR(ht, _key, _ptr) \ argument
1026 ZEND_HASH_FOREACH(ht, 0); \
1030 #define ZEND_HASH_FOREACH_KEY_PTR(ht, _h, _key, _ptr) \ argument
1031 ZEND_HASH_FOREACH(ht, 0); \
1036 #define ZEND_HASH_REVERSE_FOREACH_BUCKET(ht, _bucket) \ argument
1037 ZEND_HASH_REVERSE_FOREACH(ht, 0); \
1040 #define ZEND_HASH_REVERSE_FOREACH_VAL(ht, _val) \ argument
1041 ZEND_HASH_REVERSE_FOREACH(ht, 0); \
1044 #define ZEND_HASH_REVERSE_FOREACH_PTR(ht, _ptr) \ argument
1045 ZEND_HASH_REVERSE_FOREACH(ht, 0); \
1048 #define ZEND_HASH_REVERSE_FOREACH_VAL_IND(ht, _val) \ argument
1049 ZEND_HASH_REVERSE_FOREACH(ht, 1); \
1052 #define ZEND_HASH_REVERSE_FOREACH_STR_KEY_VAL(ht, _key, _val) \ argument
1053 ZEND_HASH_REVERSE_FOREACH(ht, 0); \
1057 #define ZEND_HASH_REVERSE_FOREACH_KEY_VAL(ht, _h, _key, _val) \ argument
1058 ZEND_HASH_REVERSE_FOREACH(ht, 0); \
1063 #define ZEND_HASH_REVERSE_FOREACH_KEY_VAL_IND(ht, _h, _key, _val) \ argument
1064 ZEND_HASH_REVERSE_FOREACH(ht, 1); \
1074 #define ZEND_HASH_FILL_PACKED(ht) do { \ argument
1075 HashTable *__fill_ht = (ht); \
1120 static zend_always_inline zval *_zend_hash_append_ex(HashTable *ht, zend_string *key, zval *zv, int… in _zend_hash_append_ex() argument
1122 uint32_t idx = ht->nNumUsed++; in _zend_hash_append_ex()
1124 Bucket *p = ht->arData + idx; in _zend_hash_append_ex()
1128 HT_FLAGS(ht) &= ~HASH_FLAG_STATIC_KEYS; in _zend_hash_append_ex()
1134 nIndex = (uint32_t)p->h | ht->nTableMask; in _zend_hash_append_ex()
1135 Z_NEXT(p->val) = HT_HASH(ht, nIndex); in _zend_hash_append_ex()
1136 HT_HASH(ht, nIndex) = HT_IDX_TO_HASH(idx); in _zend_hash_append_ex()
1137 ht->nNumOfElements++; in _zend_hash_append_ex()
1141 static zend_always_inline zval *_zend_hash_append(HashTable *ht, zend_string *key, zval *zv) in _zend_hash_append() argument
1143 return _zend_hash_append_ex(ht, key, zv, 0); in _zend_hash_append()
1146 static zend_always_inline zval *_zend_hash_append_ptr_ex(HashTable *ht, zend_string *key, void *ptr… in _zend_hash_append_ptr_ex() argument
1148 uint32_t idx = ht->nNumUsed++; in _zend_hash_append_ptr_ex()
1150 Bucket *p = ht->arData + idx; in _zend_hash_append_ptr_ex()
1154 HT_FLAGS(ht) &= ~HASH_FLAG_STATIC_KEYS; in _zend_hash_append_ptr_ex()
1160 nIndex = (uint32_t)p->h | ht->nTableMask; in _zend_hash_append_ptr_ex()
1161 Z_NEXT(p->val) = HT_HASH(ht, nIndex); in _zend_hash_append_ptr_ex()
1162 HT_HASH(ht, nIndex) = HT_IDX_TO_HASH(idx); in _zend_hash_append_ptr_ex()
1163 ht->nNumOfElements++; in _zend_hash_append_ptr_ex()
1167 static zend_always_inline zval *_zend_hash_append_ptr(HashTable *ht, zend_string *key, void *ptr) in _zend_hash_append_ptr() argument
1169 return _zend_hash_append_ptr_ex(ht, key, ptr, 0); in _zend_hash_append_ptr()
1172 static zend_always_inline void _zend_hash_append_ind(HashTable *ht, zend_string *key, zval *ptr) in _zend_hash_append_ind() argument
1174 uint32_t idx = ht->nNumUsed++; in _zend_hash_append_ind()
1176 Bucket *p = ht->arData + idx; in _zend_hash_append_ind()
1180 HT_FLAGS(ht) &= ~HASH_FLAG_STATIC_KEYS; in _zend_hash_append_ind()
1186 nIndex = (uint32_t)p->h | ht->nTableMask; in _zend_hash_append_ind()
1187 Z_NEXT(p->val) = HT_HASH(ht, nIndex); in _zend_hash_append_ind()
1188 HT_HASH(ht, nIndex) = HT_IDX_TO_HASH(idx); in _zend_hash_append_ind()
1189 ht->nNumOfElements++; in _zend_hash_append_ind()