Skip to content

Commit 2c3c238

Browse files
authored
Zend/zend_hash.(c|h): Mark various parameters and variables const (#16003)
1 parent ae505db commit 2c3c238

File tree

2 files changed

+55
-55
lines changed

2 files changed

+55
-55
lines changed

Zend/zend_hash.c

Lines changed: 36 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -293,7 +293,7 @@ ZEND_API HashTable* ZEND_FASTCALL _zend_new_array(uint32_t nSize)
293293
return ht;
294294
}
295295

296-
ZEND_API HashTable* ZEND_FASTCALL zend_new_pair(zval *val1, zval *val2)
296+
ZEND_API HashTable* ZEND_FASTCALL zend_new_pair(const zval *val1, const zval *val2)
297297
{
298298
zval *zv;
299299
HashTable *ht = emalloc(sizeof(HashTable));
@@ -457,7 +457,7 @@ ZEND_API void ZEND_FASTCALL zend_hash_discard(HashTable *ht, uint32_t nNumUsed)
457457
}
458458
}
459459

460-
static uint32_t zend_array_recalc_elements(HashTable *ht)
460+
static uint32_t zend_array_recalc_elements(const HashTable *ht)
461461
{
462462
zval *val;
463463
uint32_t num = ht->nNumOfElements;
@@ -671,10 +671,10 @@ ZEND_API void ZEND_FASTCALL zend_hash_iterator_del(uint32_t idx)
671671
}
672672
}
673673

674-
static zend_never_inline void ZEND_FASTCALL _zend_hash_iterators_remove(HashTable *ht)
674+
static zend_never_inline void ZEND_FASTCALL _zend_hash_iterators_remove(const HashTable *ht)
675675
{
676676
HashTableIterator *iter = EG(ht_iterators);
677-
HashTableIterator *end = iter + EG(ht_iterators_used);
677+
const HashTableIterator *end = iter + EG(ht_iterators_used);
678678

679679
while (iter != end) {
680680
if (iter->ht == ht) {
@@ -684,17 +684,17 @@ static zend_never_inline void ZEND_FASTCALL _zend_hash_iterators_remove(HashTabl
684684
}
685685
}
686686

687-
static zend_always_inline void zend_hash_iterators_remove(HashTable *ht)
687+
static zend_always_inline void zend_hash_iterators_remove(const HashTable *ht)
688688
{
689689
if (UNEXPECTED(HT_HAS_ITERATORS(ht))) {
690690
_zend_hash_iterators_remove(ht);
691691
}
692692
}
693693

694-
ZEND_API HashPosition ZEND_FASTCALL zend_hash_iterators_lower_pos(HashTable *ht, HashPosition start)
694+
ZEND_API HashPosition ZEND_FASTCALL zend_hash_iterators_lower_pos(const HashTable *ht, HashPosition start)
695695
{
696-
HashTableIterator *iter = EG(ht_iterators);
697-
HashTableIterator *end = iter + EG(ht_iterators_used);
696+
const HashTableIterator *iter = EG(ht_iterators);
697+
const HashTableIterator *end = iter + EG(ht_iterators_used);
698698
HashPosition res = ht->nNumUsed;
699699

700700
while (iter != end) {
@@ -708,10 +708,10 @@ ZEND_API HashPosition ZEND_FASTCALL zend_hash_iterators_lower_pos(HashTable *ht,
708708
return res;
709709
}
710710

711-
ZEND_API void ZEND_FASTCALL _zend_hash_iterators_update(HashTable *ht, HashPosition from, HashPosition to)
711+
ZEND_API void ZEND_FASTCALL _zend_hash_iterators_update(const HashTable *ht, HashPosition from, HashPosition to)
712712
{
713713
HashTableIterator *iter = EG(ht_iterators);
714-
HashTableIterator *end = iter + EG(ht_iterators_used);
714+
const HashTableIterator *end = iter + EG(ht_iterators_used);
715715

716716
while (iter != end) {
717717
if (iter->ht == ht && iter->pos == from) {
@@ -721,10 +721,10 @@ ZEND_API void ZEND_FASTCALL _zend_hash_iterators_update(HashTable *ht, HashPosit
721721
}
722722
}
723723

724-
ZEND_API void ZEND_FASTCALL zend_hash_iterators_advance(HashTable *ht, HashPosition step)
724+
ZEND_API void ZEND_FASTCALL zend_hash_iterators_advance(const HashTable *ht, HashPosition step)
725725
{
726726
HashTableIterator *iter = EG(ht_iterators);
727-
HashTableIterator *end = iter + EG(ht_iterators_used);
727+
const HashTableIterator *end = iter + EG(ht_iterators_used);
728728

729729
while (iter != end) {
730730
if (iter->ht == ht) {
@@ -1429,11 +1429,11 @@ ZEND_API void ZEND_FASTCALL zend_hash_rehash(HashTable *ht)
14291429
}
14301430
}
14311431

1432-
static zend_always_inline void zend_hash_iterators_clamp_max(HashTable *ht, uint32_t max)
1432+
static zend_always_inline void zend_hash_iterators_clamp_max(const HashTable *ht, uint32_t max)
14331433
{
14341434
if (UNEXPECTED(HT_HAS_ITERATORS(ht))) {
14351435
HashTableIterator *iter = EG(ht_iterators);
1436-
HashTableIterator *end = iter + EG(ht_iterators_used);
1436+
const HashTableIterator *end = iter + EG(ht_iterators_used);
14371437
while (iter != end) {
14381438
if (iter->ht == ht) {
14391439
iter->pos = MIN(iter->pos, max);
@@ -2237,7 +2237,7 @@ ZEND_API void ZEND_FASTCALL zend_hash_reverse_apply(HashTable *ht, apply_func_t
22372237
}
22382238

22392239

2240-
ZEND_API void ZEND_FASTCALL zend_hash_copy(HashTable *target, HashTable *source, copy_ctor_func_t pCopyConstructor)
2240+
ZEND_API void ZEND_FASTCALL zend_hash_copy(HashTable *target, const HashTable *source, copy_ctor_func_t pCopyConstructor)
22412241
{
22422242
uint32_t idx;
22432243
zval *new_entry, *data;
@@ -2284,7 +2284,7 @@ ZEND_API void ZEND_FASTCALL zend_hash_copy(HashTable *target, HashTable *source,
22842284
}
22852285

22862286

2287-
static zend_always_inline bool zend_array_dup_value(HashTable *source, HashTable *target, zval *data, zval *dest, bool packed, bool with_holes)
2287+
static zend_always_inline bool zend_array_dup_value(const HashTable *source, zval *data, zval *dest, bool packed, bool with_holes)
22882288
{
22892289
if (with_holes) {
22902290
if (!packed && Z_TYPE_INFO_P(data) == IS_INDIRECT) {
@@ -2321,9 +2321,9 @@ static zend_always_inline bool zend_array_dup_value(HashTable *source, HashTable
23212321
return 1;
23222322
}
23232323

2324-
static zend_always_inline bool zend_array_dup_element(HashTable *source, HashTable *target, uint32_t idx, Bucket *p, Bucket *q, bool packed, bool static_keys, bool with_holes)
2324+
static zend_always_inline bool zend_array_dup_element(const HashTable *source, HashTable *target, uint32_t idx, Bucket *p, Bucket *q, bool packed, bool static_keys, bool with_holes)
23252325
{
2326-
if (!zend_array_dup_value(source, target, &p->val, &q->val, packed, with_holes)) {
2326+
if (!zend_array_dup_value(source, &p->val, &q->val, packed, with_holes)) {
23272327
return 0;
23282328
}
23292329

@@ -2344,9 +2344,9 @@ static zend_always_inline bool zend_array_dup_element(HashTable *source, HashTab
23442344
}
23452345

23462346
// We need to duplicate iterators to be able to search through all copy-on-write copies to find the actually iterated HashTable and position back
2347-
static void zend_array_dup_ht_iterators(HashTable *source, HashTable *target) {
2347+
static void zend_array_dup_ht_iterators(const HashTable *source, HashTable *target) {
23482348
HashTableIterator *iter = EG(ht_iterators);
2349-
HashTableIterator *end = iter + EG(ht_iterators_used);
2349+
const HashTableIterator *end = iter + EG(ht_iterators_used);
23502350

23512351
while (iter != end) {
23522352
if (iter->ht == source) {
@@ -2359,14 +2359,14 @@ static void zend_array_dup_ht_iterators(HashTable *source, HashTable *target) {
23592359
}
23602360
}
23612361

2362-
static zend_always_inline void zend_array_dup_packed_elements(HashTable *source, HashTable *target, bool with_holes)
2362+
static zend_always_inline void zend_array_dup_packed_elements(const HashTable *source, HashTable *target, bool with_holes)
23632363
{
23642364
zval *p = source->arPacked;
23652365
zval *q = target->arPacked;
2366-
zval *end = p + source->nNumUsed;
2366+
const zval *end = p + source->nNumUsed;
23672367

23682368
do {
2369-
if (!zend_array_dup_value(source, target, p, q, 1, with_holes)) {
2369+
if (!zend_array_dup_value(source, p, q, 1, with_holes)) {
23702370
if (with_holes) {
23712371
ZVAL_UNDEF(q);
23722372
}
@@ -2379,12 +2379,12 @@ static zend_always_inline void zend_array_dup_packed_elements(HashTable *source,
23792379
}
23802380
}
23812381

2382-
static zend_always_inline uint32_t zend_array_dup_elements(HashTable *source, HashTable *target, bool static_keys, bool with_holes)
2382+
static zend_always_inline uint32_t zend_array_dup_elements(const HashTable *source, HashTable *target, bool static_keys, bool with_holes)
23832383
{
23842384
uint32_t idx = 0;
23852385
Bucket *p = source->arData;
23862386
Bucket *q = target->arData;
2387-
Bucket *end = p + source->nNumUsed;
2387+
const Bucket *end = p + source->nNumUsed;
23882388

23892389
if (UNEXPECTED(HT_HAS_ITERATORS(source))) {
23902390
zend_array_dup_ht_iterators(source, target);
@@ -2432,7 +2432,7 @@ static zend_always_inline uint32_t zend_array_dup_elements(HashTable *source, Ha
24322432
return idx;
24332433
}
24342434

2435-
ZEND_API HashTable* ZEND_FASTCALL zend_array_dup(HashTable *source)
2435+
ZEND_API HashTable* ZEND_FASTCALL zend_array_dup(const HashTable *source)
24362436
{
24372437
uint32_t idx;
24382438
HashTable *target;
@@ -2520,7 +2520,7 @@ ZEND_API HashTable* ZEND_FASTCALL zend_array_dup(HashTable *source)
25202520
return target;
25212521
}
25222522

2523-
ZEND_API HashTable* zend_array_to_list(HashTable *source)
2523+
ZEND_API HashTable* zend_array_to_list(const HashTable *source)
25242524
{
25252525
HashTable *result = _zend_new_array(zend_hash_num_elements(source));
25262526
zend_hash_real_init_packed(result);
@@ -2541,7 +2541,7 @@ ZEND_API HashTable* zend_array_to_list(HashTable *source)
25412541
}
25422542

25432543

2544-
ZEND_API void ZEND_FASTCALL zend_hash_merge(HashTable *target, HashTable *source, copy_ctor_func_t pCopyConstructor, bool overwrite)
2544+
ZEND_API void ZEND_FASTCALL zend_hash_merge(HashTable *target, const HashTable *source, copy_ctor_func_t pCopyConstructor, bool overwrite)
25452545
{
25462546
uint32_t idx;
25472547
Bucket *p;
@@ -2637,7 +2637,7 @@ static bool ZEND_FASTCALL zend_hash_replace_checker_wrapper(HashTable *target, z
26372637
}
26382638

26392639

2640-
ZEND_API void ZEND_FASTCALL zend_hash_merge_ex(HashTable *target, HashTable *source, copy_ctor_func_t pCopyConstructor, merge_checker_func_t pMergeSource, void *pParam)
2640+
ZEND_API void ZEND_FASTCALL zend_hash_merge_ex(HashTable *target, const HashTable *source, copy_ctor_func_t pCopyConstructor, merge_checker_func_t pMergeSource, void *pParam)
26412641
{
26422642
uint32_t idx;
26432643
Bucket *p;
@@ -2727,7 +2727,7 @@ ZEND_API zval* ZEND_FASTCALL _zend_hash_index_find(const HashTable *ht, zend_ulo
27272727
return p ? &p->val : NULL;
27282728
}
27292729

2730-
ZEND_API void ZEND_FASTCALL zend_hash_internal_pointer_reset_ex(HashTable *ht, HashPosition *pos)
2730+
ZEND_API void ZEND_FASTCALL zend_hash_internal_pointer_reset_ex(const HashTable *ht, HashPosition *pos)
27312731
{
27322732
IS_CONSISTENT(ht);
27332733
HT_ASSERT(ht, &ht->nInternalPointer != pos || GC_REFCOUNT(ht) == 1);
@@ -2738,7 +2738,7 @@ ZEND_API void ZEND_FASTCALL zend_hash_internal_pointer_reset_ex(HashTable *ht, H
27382738
/* This function will be extremely optimized by remembering
27392739
* the end of the list
27402740
*/
2741-
ZEND_API void ZEND_FASTCALL zend_hash_internal_pointer_end_ex(HashTable *ht, HashPosition *pos)
2741+
ZEND_API void ZEND_FASTCALL zend_hash_internal_pointer_end_ex(const HashTable *ht, HashPosition *pos)
27422742
{
27432743
uint32_t idx;
27442744

@@ -2767,7 +2767,7 @@ ZEND_API void ZEND_FASTCALL zend_hash_internal_pointer_end_ex(HashTable *ht, Has
27672767
}
27682768

27692769

2770-
ZEND_API zend_result ZEND_FASTCALL zend_hash_move_forward_ex(HashTable *ht, HashPosition *pos)
2770+
ZEND_API zend_result ZEND_FASTCALL zend_hash_move_forward_ex(const HashTable *ht, HashPosition *pos)
27712771
{
27722772
uint32_t idx;
27732773

@@ -2806,7 +2806,7 @@ ZEND_API zend_result ZEND_FASTCALL zend_hash_move_forward_ex(HashTable *ht, Hash
28062806
}
28072807
}
28082808

2809-
ZEND_API zend_result ZEND_FASTCALL zend_hash_move_backwards_ex(HashTable *ht, HashPosition *pos)
2809+
ZEND_API zend_result ZEND_FASTCALL zend_hash_move_backwards_ex(const HashTable *ht, HashPosition *pos)
28102810
{
28112811
uint32_t idx = *pos;
28122812

@@ -2887,7 +2887,7 @@ ZEND_API void ZEND_FASTCALL zend_hash_get_current_key_zval_ex(const HashTable *h
28872887
}
28882888
}
28892889

2890-
ZEND_API int ZEND_FASTCALL zend_hash_get_current_key_type_ex(HashTable *ht, HashPosition *pos)
2890+
ZEND_API int ZEND_FASTCALL zend_hash_get_current_key_type_ex(const HashTable *ht, const HashPosition *pos)
28912891
{
28922892
uint32_t idx;
28932893
Bucket *p;
@@ -2909,7 +2909,7 @@ ZEND_API int ZEND_FASTCALL zend_hash_get_current_key_type_ex(HashTable *ht, Hash
29092909
}
29102910

29112911

2912-
ZEND_API zval* ZEND_FASTCALL zend_hash_get_current_data_ex(HashTable *ht, HashPosition *pos)
2912+
ZEND_API zval* ZEND_FASTCALL zend_hash_get_current_data_ex(const HashTable *ht, const HashPosition *pos)
29132913
{
29142914
uint32_t idx;
29152915
Bucket *p;
@@ -3063,7 +3063,7 @@ ZEND_API void ZEND_FASTCALL zend_hash_sort_ex(HashTable *ht, sort_func_t sort, b
30633063
}
30643064
}
30653065

3066-
static zend_always_inline int zend_hash_compare_impl(HashTable *ht1, HashTable *ht2, compare_func_t compar, bool ordered) {
3066+
static zend_always_inline int zend_hash_compare_impl(const HashTable *ht1, const HashTable *ht2, compare_func_t compar, bool ordered) {
30673067
uint32_t idx1, idx2;
30683068
zend_string *key1, *key2;
30693069
zend_ulong h1, h2;

Zend/zend_hash.h

Lines changed: 19 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -248,16 +248,16 @@ static zend_always_inline bool zend_hash_index_exists(const HashTable *ht, zend_
248248
ZEND_API HashPosition ZEND_FASTCALL zend_hash_get_current_pos_ex(const HashTable *ht, HashPosition pos);
249249
ZEND_API HashPosition ZEND_FASTCALL zend_hash_get_current_pos(const HashTable *ht);
250250

251-
ZEND_API zend_result ZEND_FASTCALL zend_hash_move_forward_ex(HashTable *ht, HashPosition *pos);
252-
ZEND_API zend_result ZEND_FASTCALL zend_hash_move_backwards_ex(HashTable *ht, HashPosition *pos);
251+
ZEND_API zend_result ZEND_FASTCALL zend_hash_move_forward_ex(const HashTable *ht, HashPosition *pos);
252+
ZEND_API zend_result ZEND_FASTCALL zend_hash_move_backwards_ex(const HashTable *ht, HashPosition *pos);
253253
ZEND_API int ZEND_FASTCALL zend_hash_get_current_key_ex(const HashTable *ht, zend_string **str_index, zend_ulong *num_index, const HashPosition *pos);
254254
ZEND_API void ZEND_FASTCALL zend_hash_get_current_key_zval_ex(const HashTable *ht, zval *key, const HashPosition *pos);
255-
ZEND_API int ZEND_FASTCALL zend_hash_get_current_key_type_ex(HashTable *ht, HashPosition *pos);
256-
ZEND_API zval* ZEND_FASTCALL zend_hash_get_current_data_ex(HashTable *ht, HashPosition *pos);
257-
ZEND_API void ZEND_FASTCALL zend_hash_internal_pointer_reset_ex(HashTable *ht, HashPosition *pos);
258-
ZEND_API void ZEND_FASTCALL zend_hash_internal_pointer_end_ex(HashTable *ht, HashPosition *pos);
255+
ZEND_API int ZEND_FASTCALL zend_hash_get_current_key_type_ex(const HashTable *ht, const HashPosition *pos);
256+
ZEND_API zval* ZEND_FASTCALL zend_hash_get_current_data_ex(const HashTable *ht, const HashPosition *pos);
257+
ZEND_API void ZEND_FASTCALL zend_hash_internal_pointer_reset_ex(const HashTable *ht, HashPosition *pos);
258+
ZEND_API void ZEND_FASTCALL zend_hash_internal_pointer_end_ex(const HashTable *ht, HashPosition *pos);
259259

260-
static zend_always_inline zend_result zend_hash_has_more_elements_ex(HashTable *ht, HashPosition *pos) {
260+
static zend_always_inline zend_result zend_hash_has_more_elements_ex(const HashTable *ht, const HashPosition *pos) {
261261
return (zend_hash_get_current_key_type_ex(ht, pos) == HASH_KEY_NON_EXISTENT ? FAILURE : SUCCESS);
262262
}
263263
static zend_always_inline zend_result zend_hash_has_more_elements(HashTable *ht) {
@@ -275,10 +275,10 @@ static zend_always_inline int zend_hash_get_current_key(const HashTable *ht, zen
275275
static zend_always_inline void zend_hash_get_current_key_zval(const HashTable *ht, zval *key) {
276276
zend_hash_get_current_key_zval_ex(ht, key, &ht->nInternalPointer);
277277
}
278-
static zend_always_inline int zend_hash_get_current_key_type(HashTable *ht) {
278+
static zend_always_inline int zend_hash_get_current_key_type(const HashTable *ht) {
279279
return zend_hash_get_current_key_type_ex(ht, &ht->nInternalPointer);
280280
}
281-
static zend_always_inline zval* zend_hash_get_current_data(HashTable *ht) {
281+
static zend_always_inline zval* zend_hash_get_current_data(const HashTable *ht) {
282282
return zend_hash_get_current_data_ex(ht, &ht->nInternalPointer);
283283
}
284284
static zend_always_inline void zend_hash_internal_pointer_reset(HashTable *ht) {
@@ -289,9 +289,9 @@ static zend_always_inline void zend_hash_internal_pointer_end(HashTable *ht) {
289289
}
290290

291291
/* Copying, merging and sorting */
292-
ZEND_API void ZEND_FASTCALL zend_hash_copy(HashTable *target, HashTable *source, copy_ctor_func_t pCopyConstructor);
293-
ZEND_API void ZEND_FASTCALL zend_hash_merge(HashTable *target, HashTable *source, copy_ctor_func_t pCopyConstructor, bool overwrite);
294-
ZEND_API void ZEND_FASTCALL zend_hash_merge_ex(HashTable *target, HashTable *source, copy_ctor_func_t pCopyConstructor, merge_checker_func_t pMergeSource, void *pParam);
292+
ZEND_API void ZEND_FASTCALL zend_hash_copy(HashTable *target, const HashTable *source, copy_ctor_func_t pCopyConstructor);
293+
ZEND_API void ZEND_FASTCALL zend_hash_merge(HashTable *target, const HashTable *source, copy_ctor_func_t pCopyConstructor, bool overwrite);
294+
ZEND_API void ZEND_FASTCALL zend_hash_merge_ex(HashTable *target, const HashTable *source, copy_ctor_func_t pCopyConstructor, merge_checker_func_t pMergeSource, void *pParam);
295295
ZEND_API void zend_hash_bucket_swap(Bucket *p, Bucket *q);
296296
ZEND_API void zend_hash_bucket_renum_swap(Bucket *p, Bucket *q);
297297
ZEND_API void zend_hash_bucket_packed_swap(Bucket *p, Bucket *q);
@@ -333,11 +333,11 @@ ZEND_API void ZEND_FASTCALL zend_hash_rehash(HashTable *ht);
333333

334334
ZEND_API HashTable* ZEND_FASTCALL _zend_new_array_0(void);
335335
ZEND_API HashTable* ZEND_FASTCALL _zend_new_array(uint32_t size);
336-
ZEND_API HashTable* ZEND_FASTCALL zend_new_pair(zval *val1, zval *val2);
336+
ZEND_API HashTable* ZEND_FASTCALL zend_new_pair(const zval *val1, const zval *val2);
337337
ZEND_API uint32_t zend_array_count(HashTable *ht);
338-
ZEND_API HashTable* ZEND_FASTCALL zend_array_dup(HashTable *source);
338+
ZEND_API HashTable* ZEND_FASTCALL zend_array_dup(const HashTable *source);
339339
ZEND_API void ZEND_FASTCALL zend_array_destroy(HashTable *ht);
340-
ZEND_API HashTable* zend_array_to_list(HashTable *source);
340+
ZEND_API HashTable* zend_array_to_list(const HashTable *source);
341341
ZEND_API void ZEND_FASTCALL zend_symtable_clean(HashTable *ht);
342342
ZEND_API HashTable* ZEND_FASTCALL zend_symtable_to_proptable(HashTable *ht);
343343
ZEND_API HashTable* ZEND_FASTCALL zend_proptable_to_symtable(HashTable *ht, bool always_duplicate);
@@ -348,11 +348,11 @@ ZEND_API uint32_t ZEND_FASTCALL zend_hash_iterator_add(HashTable *ht, HashPo
348348
ZEND_API HashPosition ZEND_FASTCALL zend_hash_iterator_pos(uint32_t idx, HashTable *ht);
349349
ZEND_API HashPosition ZEND_FASTCALL zend_hash_iterator_pos_ex(uint32_t idx, zval *array);
350350
ZEND_API void ZEND_FASTCALL zend_hash_iterator_del(uint32_t idx);
351-
ZEND_API HashPosition ZEND_FASTCALL zend_hash_iterators_lower_pos(HashTable *ht, HashPosition start);
352-
ZEND_API void ZEND_FASTCALL _zend_hash_iterators_update(HashTable *ht, HashPosition from, HashPosition to);
353-
ZEND_API void ZEND_FASTCALL zend_hash_iterators_advance(HashTable *ht, HashPosition step);
351+
ZEND_API HashPosition ZEND_FASTCALL zend_hash_iterators_lower_pos(const HashTable *ht, HashPosition start);
352+
ZEND_API void ZEND_FASTCALL _zend_hash_iterators_update(const HashTable *ht, HashPosition from, HashPosition to);
353+
ZEND_API void ZEND_FASTCALL zend_hash_iterators_advance(const HashTable *ht, HashPosition step);
354354

355-
static zend_always_inline void zend_hash_iterators_update(HashTable *ht, HashPosition from, HashPosition to)
355+
static zend_always_inline void zend_hash_iterators_update(const HashTable *ht, HashPosition from, HashPosition to)
356356
{
357357
if (UNEXPECTED(HT_HAS_ITERATORS(ht))) {
358358
_zend_hash_iterators_update(ht, from, to);

0 commit comments

Comments
 (0)