Lines Matching refs:ht

46 #define HT_FLAGS(ht) (ht)->u.flags  argument
48 #define HT_IS_PACKED(ht) \ argument
49 ((HT_FLAGS(ht) & HASH_FLAG_PACKED) != 0)
51 #define HT_IS_WITHOUT_HOLES(ht) \ argument
52 ((ht)->nNumUsed == (ht)->nNumOfElements)
54 #define HT_HAS_STATIC_KEYS_ONLY(ht) \ argument
55 ((HT_FLAGS(ht) & (HASH_FLAG_PACKED|HASH_FLAG_STATIC_KEYS)) != 0)
58 # define HT_ALLOW_COW_VIOLATION(ht) HT_FLAGS(ht) |= HASH_FLAG_ALLOW_COW_VIOLATION argument
60 # define HT_ALLOW_COW_VIOLATION(ht) argument
63 #define HT_ITERATORS_COUNT(ht) (ht)->u.v.nIteratorsCount argument
64 #define HT_ITERATORS_OVERFLOW(ht) (HT_ITERATORS_COUNT(ht) == 0xff) argument
65 #define HT_HAS_ITERATORS(ht) (HT_ITERATORS_COUNT(ht) != 0) argument
67 #define HT_SET_ITERATORS_COUNT(ht, iters) \ argument
68 do { HT_ITERATORS_COUNT(ht) = (iters); } while (0)
69 #define HT_INC_ITERATORS_COUNT(ht) \ argument
70 HT_SET_ITERATORS_COUNT(ht, HT_ITERATORS_COUNT(ht) + 1)
71 #define HT_DEC_ITERATORS_COUNT(ht) \ argument
72 HT_SET_ITERATORS_COUNT(ht, HT_ITERATORS_COUNT(ht) - 1)
93 ZEND_API void ZEND_FASTCALL _zend_hash_init(HashTable *ht, uint32_t nSize, dtor_func_t pDestructor,…
94 ZEND_API void ZEND_FASTCALL zend_hash_destroy(HashTable *ht);
95 ZEND_API void ZEND_FASTCALL zend_hash_clean(HashTable *ht);
97 #define zend_hash_init(ht, nSize, pHashFunction, pDestructor, persistent) \ argument
98 _zend_hash_init((ht), (nSize), (pDestructor), (persistent))
99 #define zend_hash_init_ex(ht, nSize, pHashFunction, pDestructor, persistent, bApplyProtection) \ argument
100 _zend_hash_init((ht), (nSize), (pDestructor), (persistent))
102 ZEND_API void ZEND_FASTCALL zend_hash_real_init(HashTable *ht, zend_bool packed);
103 ZEND_API void ZEND_FASTCALL zend_hash_real_init_packed(HashTable *ht);
104 ZEND_API void ZEND_FASTCALL zend_hash_real_init_mixed(HashTable *ht);
105 ZEND_API void ZEND_FASTCALL zend_hash_packed_to_hash(HashTable *ht);
106 ZEND_API void ZEND_FASTCALL zend_hash_to_packed(HashTable *ht);
107 ZEND_API void ZEND_FASTCALL zend_hash_extend(HashTable *ht, uint32_t nSize, zend_bool packed);
108 ZEND_API void ZEND_FASTCALL zend_hash_discard(HashTable *ht, uint32_t nNumUsed);
111 ZEND_API zval* ZEND_FASTCALL zend_hash_add_or_update(HashTable *ht, zend_string *key, zval *pData, …
112 ZEND_API zval* ZEND_FASTCALL zend_hash_update(HashTable *ht, zend_string *key,zval *pData);
113 ZEND_API zval* ZEND_FASTCALL zend_hash_update_ind(HashTable *ht, zend_string *key,zval *pData);
114 ZEND_API zval* ZEND_FASTCALL zend_hash_add(HashTable *ht, zend_string *key,zval *pData);
115 ZEND_API zval* ZEND_FASTCALL zend_hash_add_new(HashTable *ht, zend_string *key,zval *pData);
117 ZEND_API zval* ZEND_FASTCALL zend_hash_str_add_or_update(HashTable *ht, const char *key, size_t len…
118 ZEND_API zval* ZEND_FASTCALL zend_hash_str_update(HashTable *ht, const char *key, size_t len, zval …
119 ZEND_API zval* ZEND_FASTCALL zend_hash_str_update_ind(HashTable *ht, const char *key, size_t len, z…
120 ZEND_API zval* ZEND_FASTCALL zend_hash_str_add(HashTable *ht, const char *key, size_t len, zval *pD…
121 ZEND_API zval* ZEND_FASTCALL zend_hash_str_add_new(HashTable *ht, const char *key, size_t len, zval…
123 ZEND_API zval* ZEND_FASTCALL zend_hash_index_add_or_update(HashTable *ht, zend_ulong h, zval *pData…
124 ZEND_API zval* ZEND_FASTCALL zend_hash_index_add(HashTable *ht, zend_ulong h, zval *pData);
125 ZEND_API zval* ZEND_FASTCALL zend_hash_index_add_new(HashTable *ht, zend_ulong h, zval *pData);
126 ZEND_API zval* ZEND_FASTCALL zend_hash_index_update(HashTable *ht, zend_ulong h, zval *pData);
127 ZEND_API zval* ZEND_FASTCALL zend_hash_next_index_insert(HashTable *ht, zval *pData);
128 ZEND_API zval* ZEND_FASTCALL zend_hash_next_index_insert_new(HashTable *ht, zval *pData);
130 ZEND_API zval* ZEND_FASTCALL zend_hash_index_add_empty_element(HashTable *ht, zend_ulong h);
131 ZEND_API zval* ZEND_FASTCALL zend_hash_add_empty_element(HashTable *ht, zend_string *key);
132 ZEND_API zval* ZEND_FASTCALL zend_hash_str_add_empty_element(HashTable *ht, const char *key, size_t…
142 ZEND_API void ZEND_FASTCALL zend_hash_graceful_destroy(HashTable *ht);
143 ZEND_API void ZEND_FASTCALL zend_hash_graceful_reverse_destroy(HashTable *ht);
144 ZEND_API void ZEND_FASTCALL zend_hash_apply(HashTable *ht, apply_func_t apply_func);
145 ZEND_API void ZEND_FASTCALL zend_hash_apply_with_argument(HashTable *ht, apply_func_arg_t apply_fun…
146 ZEND_API void zend_hash_apply_with_arguments(HashTable *ht, apply_func_args_t apply_func, int, ...);
154 ZEND_API void ZEND_FASTCALL zend_hash_reverse_apply(HashTable *ht, apply_func_t apply_func);
158 ZEND_API int ZEND_FASTCALL zend_hash_del(HashTable *ht, zend_string *key);
159 ZEND_API int ZEND_FASTCALL zend_hash_del_ind(HashTable *ht, zend_string *key);
160 ZEND_API int ZEND_FASTCALL zend_hash_str_del(HashTable *ht, const char *key, size_t len);
161 ZEND_API int ZEND_FASTCALL zend_hash_str_del_ind(HashTable *ht, const char *key, size_t len);
162 ZEND_API int ZEND_FASTCALL zend_hash_index_del(HashTable *ht, zend_ulong h);
163 ZEND_API void ZEND_FASTCALL zend_hash_del_bucket(HashTable *ht, Bucket *p);
166 ZEND_API zval* ZEND_FASTCALL zend_hash_find(const HashTable *ht, zend_string *key);
167 ZEND_API zval* ZEND_FASTCALL zend_hash_str_find(const HashTable *ht, const char *key, size_t len);
168 ZEND_API zval* ZEND_FASTCALL zend_hash_index_find(const HashTable *ht, zend_ulong h);
169 ZEND_API zval* ZEND_FASTCALL _zend_hash_index_find(const HashTable *ht, zend_ulong h);
172 ZEND_API zval* ZEND_FASTCALL _zend_hash_find_known_hash(const HashTable *ht, zend_string *key);
174 static zend_always_inline zval *zend_hash_find_ex(const HashTable *ht, zend_string *key, zend_bool … in zend_hash_find_ex() argument
177 return _zend_hash_find_known_hash(ht, key); in zend_hash_find_ex()
179 return zend_hash_find(ht, key); in zend_hash_find_ex()
203 ZEND_API zend_bool ZEND_FASTCALL zend_hash_exists(const HashTable *ht, zend_string *key);
204 ZEND_API zend_bool ZEND_FASTCALL zend_hash_str_exists(const HashTable *ht, const char *str, size_t …
205 ZEND_API zend_bool ZEND_FASTCALL zend_hash_index_exists(const HashTable *ht, zend_ulong h);
208 ZEND_API HashPosition ZEND_FASTCALL zend_hash_get_current_pos(const HashTable *ht);
210 #define zend_hash_has_more_elements_ex(ht, pos) \ argument
211 (zend_hash_get_current_key_type_ex(ht, pos) == HASH_KEY_NON_EXISTENT ? FAILURE : SUCCESS)
212 ZEND_API int ZEND_FASTCALL zend_hash_move_forward_ex(HashTable *ht, HashPosition *pos);
213 ZEND_API int ZEND_FASTCALL zend_hash_move_backwards_ex(HashTable *ht, HashPosition *pos);
214 ZEND_API int ZEND_FASTCALL zend_hash_get_current_key_ex(const HashTable *ht, zend_string **str_in…
215 ZEND_API void ZEND_FASTCALL zend_hash_get_current_key_zval_ex(const HashTable *ht, zval *key, Hash…
216 ZEND_API int ZEND_FASTCALL zend_hash_get_current_key_type_ex(HashTable *ht, HashPosition *pos);
217 ZEND_API zval* ZEND_FASTCALL zend_hash_get_current_data_ex(HashTable *ht, HashPosition *pos);
218 ZEND_API void ZEND_FASTCALL zend_hash_internal_pointer_reset_ex(HashTable *ht, HashPosition *pos);
219 ZEND_API void ZEND_FASTCALL zend_hash_internal_pointer_end_ex(HashTable *ht, HashPosition *pos);
221 #define zend_hash_has_more_elements(ht) \ argument
222 zend_hash_has_more_elements_ex(ht, &(ht)->nInternalPointer)
223 #define zend_hash_move_forward(ht) \ argument
224 zend_hash_move_forward_ex(ht, &(ht)->nInternalPointer)
225 #define zend_hash_move_backwards(ht) \ argument
226 zend_hash_move_backwards_ex(ht, &(ht)->nInternalPointer)
227 #define zend_hash_get_current_key(ht, str_index, num_index) \ argument
228 zend_hash_get_current_key_ex(ht, str_index, num_index, &(ht)->nInternalPointer)
229 #define zend_hash_get_current_key_zval(ht, key) \ argument
230 zend_hash_get_current_key_zval_ex(ht, key, &(ht)->nInternalPointer)
231 #define zend_hash_get_current_key_type(ht) \ argument
232 zend_hash_get_current_key_type_ex(ht, &(ht)->nInternalPointer)
233 #define zend_hash_get_current_data(ht) \ argument
234 zend_hash_get_current_data_ex(ht, &(ht)->nInternalPointer)
235 #define zend_hash_internal_pointer_reset(ht) \ argument
236 zend_hash_internal_pointer_reset_ex(ht, &(ht)->nInternalPointer)
237 #define zend_hash_internal_pointer_end(ht) \ argument
238 zend_hash_internal_pointer_end_ex(ht, &(ht)->nInternalPointer)
248 ZEND_API int ZEND_FASTCALL zend_hash_sort_ex(HashTable *ht, sort_func_t sort_func, compare_func_t…
249 ZEND_API zval* ZEND_FASTCALL zend_hash_minmax(const HashTable *ht, compare_func_t compar, uint32_t …
251 #define zend_hash_sort(ht, compare_func, renumber) \ argument
252 zend_hash_sort_ex(ht, zend_sort, compare_func, renumber)
254 #define zend_hash_num_elements(ht) \ argument
255 (ht)->nNumOfElements
257 #define zend_hash_next_free_element(ht) \ argument
258 (ht)->nNextFreeElement
260 ZEND_API int ZEND_FASTCALL zend_hash_rehash(HashTable *ht);
280 ZEND_API uint32_t zend_array_count(HashTable *ht);
282 ZEND_API void ZEND_FASTCALL zend_array_destroy(HashTable *ht);
283 ZEND_API void ZEND_FASTCALL zend_symtable_clean(HashTable *ht);
284 ZEND_API HashTable* ZEND_FASTCALL zend_symtable_to_proptable(HashTable *ht);
285 ZEND_API HashTable* ZEND_FASTCALL zend_proptable_to_symtable(HashTable *ht, zend_bool always_duplic…
289 ZEND_API uint32_t ZEND_FASTCALL zend_hash_iterator_add(HashTable *ht, HashPosition pos);
290 ZEND_API HashPosition ZEND_FASTCALL zend_hash_iterator_pos(uint32_t idx, HashTable *ht);
293 ZEND_API HashPosition ZEND_FASTCALL zend_hash_iterators_lower_pos(HashTable *ht, HashPosition start…
294 ZEND_API void ZEND_FASTCALL _zend_hash_iterators_update(HashTable *ht, HashPosition from, H…
295 ZEND_API void ZEND_FASTCALL zend_hash_iterators_advance(HashTable *ht, HashPosition step);
297 static zend_always_inline void zend_hash_iterators_update(HashTable *ht, HashPosition from, HashPos… in zend_hash_iterators_update() argument
299 if (UNEXPECTED(HT_HAS_ITERATORS(ht))) { in zend_hash_iterators_update()
300 _zend_hash_iterators_update(ht, from, to); in zend_hash_iterators_update()
307 #define ZEND_INIT_SYMTABLE(ht) \ in END_EXTERN_C() argument
308 ZEND_INIT_SYMTABLE_EX(ht, 8, 0) in END_EXTERN_C()
310 #define ZEND_INIT_SYMTABLE_EX(ht, n, persistent) \ in END_EXTERN_C() argument
311 zend_hash_init(ht, n, NULL, ZVAL_PTR_DTOR, persistent) in END_EXTERN_C()
338 static zend_always_inline zval *zend_hash_find_ind(const HashTable *ht, zend_string *key) in zend_hash_find_ind() argument
342 zv = zend_hash_find(ht, key); in zend_hash_find_ind()
348 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
352 zv = zend_hash_find_ex(ht, key, known_hash); in zend_hash_find_ex_ind()
358 static zend_always_inline int zend_hash_exists_ind(const HashTable *ht, zend_string *key) in zend_hash_exists_ind() argument
362 zv = zend_hash_find(ht, key); in zend_hash_exists_ind()
368 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
372 zv = zend_hash_str_find(ht, str, len); in zend_hash_str_find_ind()
378 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
382 zv = zend_hash_str_find(ht, str, len); in zend_hash_str_exists_ind()
387 static zend_always_inline zval *zend_symtable_add_new(HashTable *ht, zend_string *key, zval *pData) in zend_symtable_add_new() argument
392 return zend_hash_index_add_new(ht, idx, pData); in zend_symtable_add_new()
394 return zend_hash_add_new(ht, key, pData); in zend_symtable_add_new()
398 static zend_always_inline zval *zend_symtable_update(HashTable *ht, zend_string *key, zval *pData) in zend_symtable_update() argument
403 return zend_hash_index_update(ht, idx, pData); in zend_symtable_update()
405 return zend_hash_update(ht, key, pData); in zend_symtable_update()
410 static zend_always_inline zval *zend_symtable_update_ind(HashTable *ht, zend_string *key, zval *pDa… in zend_symtable_update_ind() argument
415 return zend_hash_index_update(ht, idx, pData); in zend_symtable_update_ind()
417 return zend_hash_update_ind(ht, key, pData); in zend_symtable_update_ind()
422 static zend_always_inline int zend_symtable_del(HashTable *ht, zend_string *key) in zend_symtable_del() argument
427 return zend_hash_index_del(ht, idx); in zend_symtable_del()
429 return zend_hash_del(ht, key); in zend_symtable_del()
434 static zend_always_inline int zend_symtable_del_ind(HashTable *ht, zend_string *key) in zend_symtable_del_ind() argument
439 return zend_hash_index_del(ht, idx); in zend_symtable_del_ind()
441 return zend_hash_del_ind(ht, key); in zend_symtable_del_ind()
446 static zend_always_inline zval *zend_symtable_find(const HashTable *ht, zend_string *key) in zend_symtable_find() argument
451 return zend_hash_index_find(ht, idx); in zend_symtable_find()
453 return zend_hash_find(ht, key); in zend_symtable_find()
458 static zend_always_inline zval *zend_symtable_find_ind(const HashTable *ht, zend_string *key) in zend_symtable_find_ind() argument
463 return zend_hash_index_find(ht, idx); in zend_symtable_find_ind()
465 return zend_hash_find_ind(ht, key); in zend_symtable_find_ind()
470 static zend_always_inline int zend_symtable_exists(HashTable *ht, zend_string *key) in zend_symtable_exists() argument
475 return zend_hash_index_exists(ht, idx); in zend_symtable_exists()
477 return zend_hash_exists(ht, key); in zend_symtable_exists()
482 static zend_always_inline int zend_symtable_exists_ind(HashTable *ht, zend_string *key) in zend_symtable_exists_ind() argument
487 return zend_hash_index_exists(ht, idx); in zend_symtable_exists_ind()
489 return zend_hash_exists_ind(ht, key); in zend_symtable_exists_ind()
494 static zend_always_inline zval *zend_symtable_str_update(HashTable *ht, const char *str, size_t len… in zend_symtable_str_update() argument
499 return zend_hash_index_update(ht, idx, pData); in zend_symtable_str_update()
501 return zend_hash_str_update(ht, str, len, pData); in zend_symtable_str_update()
506 static zend_always_inline zval *zend_symtable_str_update_ind(HashTable *ht, const char *str, size_t… in zend_symtable_str_update_ind() argument
511 return zend_hash_index_update(ht, idx, pData); in zend_symtable_str_update_ind()
513 return zend_hash_str_update_ind(ht, str, len, pData); in zend_symtable_str_update_ind()
518 static zend_always_inline int zend_symtable_str_del(HashTable *ht, const char *str, size_t len) in zend_symtable_str_del() argument
523 return zend_hash_index_del(ht, idx); in zend_symtable_str_del()
525 return zend_hash_str_del(ht, str, len); in zend_symtable_str_del()
530 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
535 return zend_hash_index_del(ht, idx); in zend_symtable_str_del_ind()
537 return zend_hash_str_del_ind(ht, str, len); in zend_symtable_str_del_ind()
542 static zend_always_inline zval *zend_symtable_str_find(HashTable *ht, const char *str, size_t len) in zend_symtable_str_find() argument
547 return zend_hash_index_find(ht, idx); in zend_symtable_str_find()
549 return zend_hash_str_find(ht, str, len); in zend_symtable_str_find()
554 static zend_always_inline int zend_symtable_str_exists(HashTable *ht, const char *str, size_t len) in zend_symtable_str_exists() argument
559 return zend_hash_index_exists(ht, idx); in zend_symtable_str_exists()
561 return zend_hash_str_exists(ht, str, len); in zend_symtable_str_exists()
565 static zend_always_inline void *zend_hash_add_ptr(HashTable *ht, zend_string *key, void *pData) in zend_hash_add_ptr() argument
570 zv = zend_hash_add(ht, key, &tmp); in zend_hash_add_ptr()
579 static zend_always_inline void *zend_hash_add_new_ptr(HashTable *ht, zend_string *key, void *pData) in zend_hash_add_new_ptr() argument
584 zv = zend_hash_add_new(ht, key, &tmp); in zend_hash_add_new_ptr()
593 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
598 zv = zend_hash_str_add(ht, str, len, &tmp); in zend_hash_str_add_ptr()
607 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
612 zv = zend_hash_str_add_new(ht, str, len, &tmp); in zend_hash_str_add_new_ptr()
621 static zend_always_inline void *zend_hash_update_ptr(HashTable *ht, zend_string *key, void *pData) in zend_hash_update_ptr() argument
626 zv = zend_hash_update(ht, key, &tmp); in zend_hash_update_ptr()
631 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
636 zv = zend_hash_str_update(ht, str, len, &tmp); in zend_hash_str_update_ptr()
641 static zend_always_inline void *zend_hash_add_mem(HashTable *ht, zend_string *key, void *pData, siz… in zend_hash_add_mem() argument
646 if ((zv = zend_hash_add(ht, key, &tmp))) { in zend_hash_add_mem()
647 Z_PTR_P(zv) = pemalloc(size, GC_FLAGS(ht) & IS_ARRAY_PERSISTENT); in zend_hash_add_mem()
654 static zend_always_inline void *zend_hash_add_new_mem(HashTable *ht, zend_string *key, void *pData,… in zend_hash_add_new_mem() argument
659 if ((zv = zend_hash_add_new(ht, key, &tmp))) { in zend_hash_add_new_mem()
660 Z_PTR_P(zv) = pemalloc(size, GC_FLAGS(ht) & IS_ARRAY_PERSISTENT); in zend_hash_add_new_mem()
667 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
672 if ((zv = zend_hash_str_add(ht, str, len, &tmp))) { in zend_hash_str_add_mem()
673 Z_PTR_P(zv) = pemalloc(size, GC_FLAGS(ht) & IS_ARRAY_PERSISTENT); in zend_hash_str_add_mem()
680 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
685 if ((zv = zend_hash_str_add_new(ht, str, len, &tmp))) { in zend_hash_str_add_new_mem()
686 Z_PTR_P(zv) = pemalloc(size, GC_FLAGS(ht) & IS_ARRAY_PERSISTENT); in zend_hash_str_add_new_mem()
693 static zend_always_inline void *zend_hash_update_mem(HashTable *ht, zend_string *key, void *pData, … in zend_hash_update_mem() argument
697 p = pemalloc(size, GC_FLAGS(ht) & IS_ARRAY_PERSISTENT); in zend_hash_update_mem()
699 return zend_hash_update_ptr(ht, key, p); in zend_hash_update_mem()
702 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
706 p = pemalloc(size, GC_FLAGS(ht) & IS_ARRAY_PERSISTENT); in zend_hash_str_update_mem()
708 return zend_hash_str_update_ptr(ht, str, len, p); in zend_hash_str_update_mem()
711 static zend_always_inline void *zend_hash_index_add_ptr(HashTable *ht, zend_ulong h, void *pData) in zend_hash_index_add_ptr() argument
716 zv = zend_hash_index_add(ht, h, &tmp); in zend_hash_index_add_ptr()
720 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
725 zv = zend_hash_index_add_new(ht, h, &tmp); in zend_hash_index_add_new_ptr()
729 static zend_always_inline void *zend_hash_index_update_ptr(HashTable *ht, zend_ulong h, void *pData) in zend_hash_index_update_ptr() argument
734 zv = zend_hash_index_update(ht, h, &tmp); in zend_hash_index_update_ptr()
739 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
744 if ((zv = zend_hash_index_add(ht, h, &tmp))) { in zend_hash_index_add_mem()
745 Z_PTR_P(zv) = pemalloc(size, GC_FLAGS(ht) & IS_ARRAY_PERSISTENT); in zend_hash_index_add_mem()
752 static zend_always_inline void *zend_hash_next_index_insert_ptr(HashTable *ht, void *pData) in zend_hash_next_index_insert_ptr() argument
757 zv = zend_hash_next_index_insert(ht, &tmp); in zend_hash_next_index_insert_ptr()
766 static zend_always_inline void *zend_hash_index_update_mem(HashTable *ht, zend_ulong h, void *pData… in zend_hash_index_update_mem() argument
770 p = pemalloc(size, GC_FLAGS(ht) & IS_ARRAY_PERSISTENT); in zend_hash_index_update_mem()
772 return zend_hash_index_update_ptr(ht, h, p); in zend_hash_index_update_mem()
775 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
780 if ((zv = zend_hash_next_index_insert(ht, &tmp))) { in zend_hash_next_index_insert_mem()
781 Z_PTR_P(zv) = pemalloc(size, GC_FLAGS(ht) & IS_ARRAY_PERSISTENT); in zend_hash_next_index_insert_mem()
788 static zend_always_inline void *zend_hash_find_ptr(const HashTable *ht, zend_string *key) in zend_hash_find_ptr() argument
792 zv = zend_hash_find(ht, key); in zend_hash_find_ptr()
801 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
805 zv = zend_hash_find_ex(ht, key, known_hash); in zend_hash_find_ex_ptr()
814 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
818 zv = zend_hash_str_find(ht, str, len); in zend_hash_str_find_ptr()
827 static zend_always_inline void *zend_hash_index_find_ptr(const HashTable *ht, zend_ulong h) in zend_hash_index_find_ptr() argument
831 zv = zend_hash_index_find(ht, h); in zend_hash_index_find_ptr()
840 static zend_always_inline zval *zend_hash_index_find_deref(HashTable *ht, zend_ulong h) in zend_hash_index_find_deref() argument
842 zval *zv = zend_hash_index_find(ht, h); in zend_hash_index_find_deref()
849 static zend_always_inline zval *zend_hash_find_deref(HashTable *ht, zend_string *str) in zend_hash_find_deref() argument
851 zval *zv = zend_hash_find(ht, str); in zend_hash_find_deref()
858 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
860 zval *zv = zend_hash_str_find(ht, str, len); in zend_hash_str_find_deref()
867 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
872 return zend_hash_index_find_ptr(ht, idx); in zend_symtable_str_find_ptr()
874 return zend_hash_str_find_ptr(ht, str, len); in zend_symtable_str_find_ptr()
878 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
882 zv = zend_hash_get_current_data_ex(ht, pos); in zend_hash_get_current_data_ptr_ex()
891 #define zend_hash_get_current_data_ptr(ht) \ argument
892 zend_hash_get_current_data_ptr_ex(ht, &(ht)->nInternalPointer)
943 #define ZEND_HASH_FOREACH_BUCKET(ht, _bucket) \ argument
944 ZEND_HASH_FOREACH(ht, 0); \
947 #define ZEND_HASH_FOREACH_VAL(ht, _val) \ argument
948 ZEND_HASH_FOREACH(ht, 0); \
951 #define ZEND_HASH_FOREACH_VAL_IND(ht, _val) \ argument
952 ZEND_HASH_FOREACH(ht, 1); \
955 #define ZEND_HASH_FOREACH_PTR(ht, _ptr) \ argument
956 ZEND_HASH_FOREACH(ht, 0); \
959 #define ZEND_HASH_FOREACH_NUM_KEY(ht, _h) \ argument
960 ZEND_HASH_FOREACH(ht, 0); \
963 #define ZEND_HASH_FOREACH_STR_KEY(ht, _key) \ argument
964 ZEND_HASH_FOREACH(ht, 0); \
967 #define ZEND_HASH_FOREACH_KEY(ht, _h, _key) \ argument
968 ZEND_HASH_FOREACH(ht, 0); \
972 #define ZEND_HASH_FOREACH_NUM_KEY_VAL(ht, _h, _val) \ argument
973 ZEND_HASH_FOREACH(ht, 0); \
977 #define ZEND_HASH_FOREACH_STR_KEY_VAL(ht, _key, _val) \ argument
978 ZEND_HASH_FOREACH(ht, 0); \
982 #define ZEND_HASH_FOREACH_KEY_VAL(ht, _h, _key, _val) \ argument
983 ZEND_HASH_FOREACH(ht, 0); \
988 #define ZEND_HASH_FOREACH_STR_KEY_VAL_IND(ht, _key, _val) \ argument
989 ZEND_HASH_FOREACH(ht, 1); \
993 #define ZEND_HASH_FOREACH_KEY_VAL_IND(ht, _h, _key, _val) \ argument
994 ZEND_HASH_FOREACH(ht, 1); \
999 #define ZEND_HASH_FOREACH_NUM_KEY_PTR(ht, _h, _ptr) \ argument
1000 ZEND_HASH_FOREACH(ht, 0); \
1004 #define ZEND_HASH_FOREACH_STR_KEY_PTR(ht, _key, _ptr) \ argument
1005 ZEND_HASH_FOREACH(ht, 0); \
1009 #define ZEND_HASH_FOREACH_KEY_PTR(ht, _h, _key, _ptr) \ argument
1010 ZEND_HASH_FOREACH(ht, 0); \
1015 #define ZEND_HASH_REVERSE_FOREACH_BUCKET(ht, _bucket) \ argument
1016 ZEND_HASH_REVERSE_FOREACH(ht, 0); \
1019 #define ZEND_HASH_REVERSE_FOREACH_VAL(ht, _val) \ argument
1020 ZEND_HASH_REVERSE_FOREACH(ht, 0); \
1023 #define ZEND_HASH_REVERSE_FOREACH_PTR(ht, _ptr) \ argument
1024 ZEND_HASH_REVERSE_FOREACH(ht, 0); \
1027 #define ZEND_HASH_REVERSE_FOREACH_VAL_IND(ht, _val) \ argument
1028 ZEND_HASH_REVERSE_FOREACH(ht, 1); \
1031 #define ZEND_HASH_REVERSE_FOREACH_STR_KEY_VAL(ht, _key, _val) \ argument
1032 ZEND_HASH_REVERSE_FOREACH(ht, 0); \
1036 #define ZEND_HASH_REVERSE_FOREACH_KEY_VAL(ht, _h, _key, _val) \ argument
1037 ZEND_HASH_REVERSE_FOREACH(ht, 0); \
1042 #define ZEND_HASH_REVERSE_FOREACH_KEY_VAL_IND(ht, _h, _key, _val) \ argument
1043 ZEND_HASH_REVERSE_FOREACH(ht, 1); \
1053 #define ZEND_HASH_FILL_PACKED(ht) do { \ argument
1054 HashTable *__fill_ht = (ht); \
1074 static zend_always_inline zval *_zend_hash_append_ex(HashTable *ht, zend_string *key, zval *zv, int… in _zend_hash_append_ex() argument
1076 uint32_t idx = ht->nNumUsed++; in _zend_hash_append_ex()
1078 Bucket *p = ht->arData + idx; in _zend_hash_append_ex()
1082 HT_FLAGS(ht) &= ~HASH_FLAG_STATIC_KEYS; in _zend_hash_append_ex()
1088 nIndex = (uint32_t)p->h | ht->nTableMask; in _zend_hash_append_ex()
1089 Z_NEXT(p->val) = HT_HASH(ht, nIndex); in _zend_hash_append_ex()
1090 HT_HASH(ht, nIndex) = HT_IDX_TO_HASH(idx); in _zend_hash_append_ex()
1091 ht->nNumOfElements++; in _zend_hash_append_ex()
1095 static zend_always_inline zval *_zend_hash_append(HashTable *ht, zend_string *key, zval *zv) in _zend_hash_append() argument
1097 return _zend_hash_append_ex(ht, key, zv, 0); in _zend_hash_append()
1100 static zend_always_inline zval *_zend_hash_append_ptr_ex(HashTable *ht, zend_string *key, void *ptr… in _zend_hash_append_ptr_ex() argument
1102 uint32_t idx = ht->nNumUsed++; in _zend_hash_append_ptr_ex()
1104 Bucket *p = ht->arData + idx; in _zend_hash_append_ptr_ex()
1108 HT_FLAGS(ht) &= ~HASH_FLAG_STATIC_KEYS; in _zend_hash_append_ptr_ex()
1114 nIndex = (uint32_t)p->h | ht->nTableMask; in _zend_hash_append_ptr_ex()
1115 Z_NEXT(p->val) = HT_HASH(ht, nIndex); in _zend_hash_append_ptr_ex()
1116 HT_HASH(ht, nIndex) = HT_IDX_TO_HASH(idx); in _zend_hash_append_ptr_ex()
1117 ht->nNumOfElements++; in _zend_hash_append_ptr_ex()
1121 static zend_always_inline zval *_zend_hash_append_ptr(HashTable *ht, zend_string *key, void *ptr) in _zend_hash_append_ptr() argument
1123 return _zend_hash_append_ptr_ex(ht, key, ptr, 0); in _zend_hash_append_ptr()
1126 static zend_always_inline void _zend_hash_append_ind(HashTable *ht, zend_string *key, zval *ptr) in _zend_hash_append_ind() argument
1128 uint32_t idx = ht->nNumUsed++; in _zend_hash_append_ind()
1130 Bucket *p = ht->arData + idx; in _zend_hash_append_ind()
1134 HT_FLAGS(ht) &= ~HASH_FLAG_STATIC_KEYS; in _zend_hash_append_ind()
1140 nIndex = (uint32_t)p->h | ht->nTableMask; in _zend_hash_append_ind()
1141 Z_NEXT(p->val) = HT_HASH(ht, nIndex); in _zend_hash_append_ind()
1142 HT_HASH(ht, nIndex) = HT_IDX_TO_HASH(idx); in _zend_hash_append_ind()
1143 ht->nNumOfElements++; in _zend_hash_append_ind()