Skip to content

Commit b2cdde0

Browse files
committed
Merge branch 'PHP-7.4'
* PHP-7.4: Replace ZVAL_COPY() and ZVAL_COPY_VALUE() for IS_OBJECT by cheaper macros
2 parents 4d1d5ba + 8380451 commit b2cdde0

27 files changed

+93
-58
lines changed

Zend/zend_closures.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -738,7 +738,8 @@ ZEND_API void zend_create_closure(zval *res, zend_function *func, zend_class_ent
738738
if (scope) {
739739
closure->func.common.fn_flags |= ZEND_ACC_PUBLIC;
740740
if (this_ptr && Z_TYPE_P(this_ptr) == IS_OBJECT && (closure->func.common.fn_flags & ZEND_ACC_STATIC) == 0) {
741-
ZVAL_COPY(&closure->this_ptr, this_ptr);
741+
Z_ADDREF_P(this_ptr);
742+
ZVAL_OBJ(&closure->this_ptr, Z_OBJ_P(this_ptr));
742743
}
743744
}
744745
}

Zend/zend_generators.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1165,7 +1165,8 @@ zend_object_iterator *zend_generator_get_iterator(zend_class_entry *ce, zval *ob
11651165
zend_iterator_init(iterator);
11661166

11671167
iterator->funcs = &zend_generator_iterator_functions;
1168-
ZVAL_COPY(&iterator->data, object);
1168+
Z_ADDREF_P(object);
1169+
ZVAL_OBJ(&iterator->data, Z_OBJ_P(object));
11691170

11701171
return iterator;
11711172
}

Zend/zend_interfaces.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -249,7 +249,8 @@ static zend_object_iterator *zend_user_it_get_iterator(zend_class_entry *ce, zva
249249

250250
zend_iterator_init((zend_object_iterator*)iterator);
251251

252-
ZVAL_COPY(&iterator->it.data, object);
252+
Z_ADDREF_P(object);
253+
ZVAL_OBJ(&iterator->it.data, Z_OBJ_P(object));
253254
iterator->it.funcs = &zend_interface_iterator_funcs_iterator;
254255
iterator->ce = Z_OBJCE_P(object);
255256
ZVAL_UNDEF(&iterator->value);

ext/com_dotnet/com_saproxy.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -542,7 +542,8 @@ zend_object_iterator *php_com_saproxy_iter_get(zend_class_entry *ce, zval *objec
542542
Z_PTR(I->iter.data) = I;
543543

544544
I->proxy = proxy;
545-
ZVAL_COPY(&I->proxy_obj, object);
545+
Z_ADDREF_P(object);
546+
ZVAL_OBJ(&I->proxy_obj, Z_OBJ_P(object));
546547

547548
I->indices = safe_emalloc(proxy->dimensions + 1, sizeof(LONG), 0);
548549
for (i = 0; i < proxy->dimensions; i++) {

ext/date/php_date.c

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2006,7 +2006,8 @@ zend_object_iterator *date_object_period_get_iterator(zend_class_entry *ce, zval
20062006

20072007
zend_iterator_init((zend_object_iterator*)iterator);
20082008

2009-
ZVAL_COPY(&iterator->intern.data, object);
2009+
Z_ADDREF_P(object);
2010+
ZVAL_OBJ(&iterator->intern.data, Z_OBJ_P(object));
20102011
iterator->intern.funcs = &date_period_it_funcs;
20112012
iterator->object = Z_PHPPERIOD_P(object);
20122013
ZVAL_UNDEF(&iterator->current);
@@ -3245,7 +3246,7 @@ PHP_FUNCTION(date_modify)
32453246
}
32463247

32473248
Z_ADDREF_P(object);
3248-
ZVAL_COPY_VALUE(return_value, object);
3249+
ZVAL_OBJ(return_value, Z_OBJ_P(object));
32493250
}
32503251
/* }}} */
32513252

@@ -3301,7 +3302,7 @@ PHP_FUNCTION(date_add)
33013302
php_date_add(object, interval, return_value);
33023303

33033304
Z_ADDREF_P(object);
3304-
ZVAL_COPY_VALUE(return_value, object);
3305+
ZVAL_OBJ(return_value, Z_OBJ_P(object));
33053306
}
33063307
/* }}} */
33073308

@@ -3358,7 +3359,7 @@ PHP_FUNCTION(date_sub)
33583359
php_date_sub(object, interval, return_value);
33593360

33603361
Z_ADDREF_P(object);
3361-
ZVAL_COPY_VALUE(return_value, object);
3362+
ZVAL_OBJ(return_value, Z_OBJ_P(object));
33623363
}
33633364
/* }}} */
33643365

@@ -3462,7 +3463,7 @@ PHP_FUNCTION(date_timezone_set)
34623463
php_date_timezone_set(object, timezone_object, return_value);
34633464

34643465
Z_ADDREF_P(object);
3465-
ZVAL_COPY_VALUE(return_value, object);
3466+
ZVAL_OBJ(return_value, Z_OBJ_P(object));
34663467
}
34673468
/* }}} */
34683469

@@ -3548,7 +3549,7 @@ PHP_FUNCTION(date_time_set)
35483549
php_date_time_set(object, h, i, s, ms, return_value);
35493550

35503551
Z_ADDREF_P(object);
3551-
ZVAL_COPY_VALUE(return_value, object);
3552+
ZVAL_OBJ(return_value, Z_OBJ_P(object));
35523553
}
35533554
/* }}} */
35543555

@@ -3598,7 +3599,7 @@ PHP_FUNCTION(date_date_set)
35983599
php_date_date_set(object, y, m, d, return_value);
35993600

36003601
Z_ADDREF_P(object);
3601-
ZVAL_COPY_VALUE(return_value, object);
3602+
ZVAL_OBJ(return_value, Z_OBJ_P(object));
36023603
}
36033604
/* }}} */
36043605

@@ -3652,7 +3653,7 @@ PHP_FUNCTION(date_isodate_set)
36523653
php_date_isodate_set(object, y, w, d, return_value);
36533654

36543655
Z_ADDREF_P(object);
3655-
ZVAL_COPY_VALUE(return_value, object);
3656+
ZVAL_OBJ(return_value, Z_OBJ_P(object));
36563657
}
36573658
/* }}} */
36583659

@@ -3701,7 +3702,7 @@ PHP_FUNCTION(date_timestamp_set)
37013702
php_date_timestamp_set(object, timestamp, return_value);
37023703

37033704
Z_ADDREF_P(object);
3704-
ZVAL_COPY_VALUE(return_value, object);
3705+
ZVAL_OBJ(return_value, Z_OBJ_P(object));
37053706
}
37063707
/* }}} */
37073708

ext/dom/dom_iterators.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -272,7 +272,8 @@ zend_object_iterator *php_dom_get_iterator(zend_class_entry *ce, zval *object, i
272272
iterator = emalloc(sizeof(php_dom_iterator));
273273
zend_iterator_init(&iterator->intern);
274274

275-
ZVAL_COPY(&iterator->intern.data, object);
275+
Z_ADDREF_P(object);
276+
ZVAL_OBJ(&iterator->intern.data, Z_OBJ_P(object));
276277
iterator->intern.funcs = &php_dom_iterator_funcs;
277278

278279
ZVAL_UNDEF(&iterator->curobj);

ext/ffi/ffi.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1792,7 +1792,8 @@ static zend_object_iterator *zend_ffi_cdata_get_iterator(zend_class_entry *ce, z
17921792

17931793
zend_iterator_init(&iter->it);
17941794

1795-
ZVAL_COPY(&iter->it.data, object);
1795+
Z_ADDREF_P(object);
1796+
ZVAL_OBJ(&iter->it.data, Z_OBJ_P(object));
17961797
iter->it.funcs = &zend_ffi_cdata_it_funcs;
17971798
iter->key = 0;
17981799
iter->by_ref = by_ref;

ext/intl/breakiterator/breakiterator_iterators.cpp

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -111,7 +111,8 @@ U_CFUNC zend_object_iterator *_breakiterator_get_iterator(
111111

112112
zoi_with_current *zoi_iter = static_cast<zoi_with_current*>(emalloc(sizeof *zoi_iter));
113113
zend_iterator_init(&zoi_iter->zoi);
114-
ZVAL_COPY(&zoi_iter->zoi.data, object);
114+
Z_ADDREF_P(object);
115+
ZVAL_OBJ(&zoi_iter->zoi.data, Z_OBJ_P(object));
115116
zoi_iter->zoi.funcs = &breakiterator_iterator_funcs;
116117
zoi_iter->zoi.index = 0;
117118
zoi_iter->destroy_it = _breakiterator_destroy_it;
@@ -220,7 +221,7 @@ void IntlIterator_from_BreakIterator_parts(zval *break_iter_zv,
220221
ii->iterator->index = 0;
221222

222223
((zoi_with_current*)ii->iterator)->destroy_it = _breakiterator_parts_destroy_it;
223-
ZVAL_COPY_VALUE(&((zoi_with_current*)ii->iterator)->wrapping_obj, object);
224+
ZVAL_OBJ(&((zoi_with_current*)ii->iterator)->wrapping_obj, Z_OBJ_P(object));
224225
ZVAL_UNDEF(&((zoi_with_current*)ii->iterator)->current);
225226

226227
((zoi_break_iter_parts*)ii->iterator)->bio = Z_INTL_BREAKITERATOR_P(break_iter_zv);

ext/intl/collator/collator_sort.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -320,7 +320,7 @@ static void collator_sort_internal( int renumber, INTERNAL_FUNCTION_PARAMETERS )
320320

321321
/* Save specified collator in the request-global (?) variable. */
322322
ZVAL_COPY_VALUE(&saved_collator, &INTL_G( current_collator ));
323-
ZVAL_COPY_VALUE(&INTL_G( current_collator ), object);
323+
ZVAL_OBJ(&INTL_G( current_collator ), Z_OBJ_P(object));
324324

325325
/* Sort specified array. */
326326
zend_hash_sort(hash, collator_compare_func, renumber);

ext/intl/common/common_enum.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -148,7 +148,7 @@ U_CFUNC void IntlIterator_from_StringEnumeration(StringEnumeration *se, zval *ob
148148
ii->iterator->funcs = &string_enum_object_iterator_funcs;
149149
ii->iterator->index = 0;
150150
((zoi_with_current*)ii->iterator)->destroy_it = string_enum_destroy_it;
151-
ZVAL_COPY_VALUE(&((zoi_with_current*)ii->iterator)->wrapping_obj, object);
151+
ZVAL_OBJ(&((zoi_with_current*)ii->iterator)->wrapping_obj, Z_OBJ_P(object));
152152
ZVAL_UNDEF(&((zoi_with_current*)ii->iterator)->current);
153153
}
154154

ext/intl/resourcebundle/resourcebundle_iterator.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -157,7 +157,8 @@ zend_object_iterator *resourcebundle_get_iterator( zend_class_entry *ce, zval *o
157157
}
158158

159159
zend_iterator_init(&iterator->intern);
160-
ZVAL_COPY(&iterator->intern.data, object);
160+
Z_ADDREF_P(object);
161+
ZVAL_OBJ(&iterator->intern.data, Z_OBJ_P(object));
161162
iterator->intern.funcs = &resourcebundle_iterator_funcs;
162163

163164
iterator->subject = rb;

ext/mysqli/mysqli_result_iterator.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,8 @@ zend_object_iterator *php_mysqli_result_get_iterator(zend_class_entry *ce, zval
5252
iterator = ecalloc(1, sizeof(php_mysqli_result_iterator));
5353
zend_iterator_init(&iterator->intern);
5454

55-
ZVAL_COPY(&iterator->intern.data, object);
55+
Z_ADDREF_P(object);
56+
ZVAL_OBJ(&iterator->intern.data, Z_OBJ_P(object));
5657
iterator->intern.funcs = &php_mysqli_result_iterator_funcs;
5758
iterator->result = Z_MYSQLI_P(object);
5859
iterator->row_num = -1;

ext/pdo/pdo_dbh.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1108,7 +1108,7 @@ static PHP_METHOD(PDO, query)
11081108
}
11091109
/* something broke */
11101110
dbh->query_stmt = stmt;
1111-
ZVAL_COPY_VALUE(&dbh->query_stmt_zval, return_value);
1111+
ZVAL_OBJ(&dbh->query_stmt_zval, Z_OBJ_P(return_value));
11121112
Z_DELREF(stmt->database_object_handle);
11131113
ZVAL_UNDEF(&stmt->database_object_handle);
11141114
PDO_HANDLE_STMT_ERR();

ext/pdo/pdo_stmt.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2415,7 +2415,8 @@ zend_object_iterator *pdo_stmt_iter_get(zend_class_entry *ce, zval *object, int
24152415
I = ecalloc(1, sizeof(struct php_pdo_iterator));
24162416
zend_iterator_init(&I->iter);
24172417
I->iter.funcs = &pdo_stmt_iter_funcs;
2418-
ZVAL_COPY(&I->iter.data, object);
2418+
Z_ADDREF_P(object);
2419+
ZVAL_OBJ(&I->iter.data, Z_OBJ_P(object));
24192420

24202421
if (!do_fetch(stmt, 1, &I->fetch_ahead, PDO_FETCH_USE_DEFAULT,
24212422
PDO_FETCH_ORI_NEXT, 0, 0)) {

ext/reflection/php_reflection.c

Lines changed: 14 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1123,7 +1123,7 @@ static void reflection_parameter_factory(zend_function *fptr, zval *closure_obje
11231123
intern->ce = fptr->common.scope;
11241124
if (closure_object) {
11251125
Z_ADDREF_P(closure_object);
1126-
ZVAL_COPY_VALUE(&intern->obj, closure_object);
1126+
ZVAL_OBJ(&intern->obj, Z_OBJ_P(closure_object));
11271127
}
11281128

11291129
prop_name = reflection_prop_name(object);
@@ -1166,7 +1166,7 @@ static void reflection_function_factory(zend_function *function, zval *closure_o
11661166
intern->ce = NULL;
11671167
if (closure_object) {
11681168
Z_ADDREF_P(closure_object);
1169-
ZVAL_COPY_VALUE(&intern->obj, closure_object);
1169+
ZVAL_OBJ(&intern->obj, Z_OBJ_P(closure_object));
11701170
}
11711171
ZVAL_STR_COPY(reflection_prop_name(object), function->common.function_name);
11721172
}
@@ -1184,7 +1184,7 @@ static void reflection_method_factory(zend_class_entry *ce, zend_function *metho
11841184
intern->ce = ce;
11851185
if (closure_object) {
11861186
Z_ADDREF_P(closure_object);
1187-
ZVAL_COPY_VALUE(&intern->obj, closure_object);
1187+
ZVAL_OBJ(&intern->obj, Z_OBJ_P(closure_object));
11881188
}
11891189

11901190
ZVAL_STR_COPY(reflection_prop_name(object),
@@ -1532,7 +1532,7 @@ ZEND_METHOD(reflection_function, __construct)
15321532
intern->ptr = fptr;
15331533
intern->ref_type = REF_TYPE_FUNCTION;
15341534
if (closure) {
1535-
ZVAL_COPY_VALUE(&intern->obj, closure);
1535+
ZVAL_OBJ(&intern->obj, Z_OBJ_P(closure));
15361536
} else {
15371537
ZVAL_UNDEF(&intern->obj);
15381538
}
@@ -1597,7 +1597,8 @@ ZEND_METHOD(reflection_function, getClosureThis)
15971597
if (!Z_ISUNDEF(intern->obj)) {
15981598
closure_this = zend_get_closure_this_ptr(&intern->obj);
15991599
if (!Z_ISUNDEF_P(closure_this)) {
1600-
ZVAL_COPY(return_value, closure_this);
1600+
Z_ADDREF_P(closure_this);
1601+
ZVAL_OBJ(return_value, Z_OBJ_P(closure_this));
16011602
}
16021603
}
16031604
}
@@ -1637,7 +1638,8 @@ ZEND_METHOD(reflection_function, getClosure)
16371638

16381639
if (!Z_ISUNDEF(intern->obj)) {
16391640
/* Closures are immutable objects */
1640-
ZVAL_COPY(return_value, &intern->obj);
1641+
Z_ADDREF(intern->obj);
1642+
ZVAL_OBJ(return_value, Z_OBJ(intern->obj));
16411643
} else {
16421644
zend_create_fake_closure(return_value, fptr, NULL, NULL, NULL);
16431645
}
@@ -2066,7 +2068,8 @@ ZEND_METHOD(reflection_generator, __construct)
20662068
}
20672069

20682070
intern->ref_type = REF_TYPE_GENERATOR;
2069-
ZVAL_COPY(&intern->obj, generator);
2071+
Z_ADDREF_P(generator);
2072+
ZVAL_OBJ(&intern->obj, Z_OBJ_P(generator));
20702073
intern->ce = zend_ce_generator;
20712074
}
20722075
/* }}} */
@@ -2182,7 +2185,8 @@ ZEND_METHOD(reflection_generator, getThis)
21822185
REFLECTION_CHECK_VALID_GENERATOR(ex)
21832186

21842187
if (Z_TYPE(ex->This) == IS_OBJECT) {
2185-
ZVAL_COPY(return_value, &ex->This);
2188+
Z_ADDREF(ex->This);
2189+
ZVAL_OBJ(return_value, Z_OBJ(ex->This));
21862190
} else {
21872191
ZVAL_NULL(return_value);
21882192
}
@@ -3028,7 +3032,8 @@ ZEND_METHOD(reflection_method, getClosure)
30283032
if (Z_OBJCE_P(obj) == zend_ce_closure &&
30293033
(mptr->internal_function.fn_flags & ZEND_ACC_CALL_VIA_TRAMPOLINE))
30303034
{
3031-
ZVAL_COPY(return_value, obj);
3035+
Z_ADDREF_P(obj);
3036+
ZVAL_OBJ(return_value, Z_OBJ_P(obj));
30323037
} else {
30333038
zend_create_fake_closure(return_value, mptr, mptr->common.scope, Z_OBJCE_P(obj), obj);
30343039
}

ext/simplexml/simplexml.c

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -356,7 +356,7 @@ static zval *sxe_prop_dim_read(zend_object *object, zval *member, zend_bool elem
356356
}
357357

358358
if (Z_ISUNDEF_P(rv)) {
359-
ZVAL_COPY_VALUE(rv, &EG(uninitialized_zval));
359+
ZVAL_NULL(rv);
360360
}
361361

362362
return rv;
@@ -2405,7 +2405,8 @@ zend_object_iterator *php_sxe_get_iterator(zend_class_entry *ce, zval *object, i
24052405
iterator = emalloc(sizeof(php_sxe_iterator));
24062406
zend_iterator_init(&iterator->intern);
24072407

2408-
ZVAL_COPY(&iterator->intern.data, object);
2408+
Z_ADDREF_P(object);
2409+
ZVAL_OBJ(&iterator->intern.data, Z_OBJ_P(object));
24092410
iterator->intern.funcs = &php_sxe_iterator_funcs;
24102411
iterator->sxe = Z_SXEOBJ_P(object);
24112412

ext/soap/soap.c

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1319,7 +1319,8 @@ PHP_METHOD(SoapServer, setObject)
13191319

13201320
service->type = SOAP_OBJECT;
13211321

1322-
ZVAL_COPY(&service->soap_object, obj);
1322+
Z_ADDREF_P(obj);
1323+
ZVAL_OBJ(&service->soap_object, Z_OBJ_P(obj));
13231324

13241325
SOAP_SERVER_END_CODE();
13251326
}
@@ -2021,7 +2022,8 @@ PHP_METHOD(SoapServer, addSoapHeader)
20212022
*p = emalloc(sizeof(soapHeader));
20222023
memset(*p, 0, sizeof(soapHeader));
20232024
ZVAL_NULL(&(*p)->function_name);
2024-
ZVAL_COPY(&(*p)->retval, fault);
2025+
Z_ADDREF_P(fault);
2026+
ZVAL_OBJ(&(*p)->retval, Z_OBJ_P(fault));
20252027

20262028
SOAP_SERVER_END_CODE();
20272029
}

ext/spl/spl_array.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1173,7 +1173,8 @@ zend_object_iterator *spl_array_get_iterator(zend_class_entry *ce, zval *object,
11731173

11741174
zend_iterator_init(&iterator->it);
11751175

1176-
ZVAL_COPY(&iterator->it.data, object);
1176+
Z_ADDREF_P(object);
1177+
ZVAL_OBJ(&iterator->it.data, Z_OBJ_P(object));
11771178
iterator->it.funcs = &spl_array_it_funcs;
11781179
iterator->ce = ce;
11791180
ZVAL_UNDEF(&iterator->value);

ext/spl/spl_directory.c

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1637,7 +1637,8 @@ zend_object_iterator *spl_filesystem_dir_get_iterator(zend_class_entry *ce, zval
16371637
}
16381638
dir_object = Z_SPLFILESYSTEM_P(object);
16391639
iterator = spl_filesystem_object_to_iterator(dir_object);
1640-
ZVAL_COPY(&iterator->intern.data, object);
1640+
Z_ADDREF_P(object);
1641+
ZVAL_OBJ(&iterator->intern.data, Z_OBJ_P(object));
16411642
iterator->intern.funcs = &spl_filesystem_dir_it_funcs;
16421643
/* ->current must be initialized; rewind doesn't set it and valid
16431644
* doesn't check whether it's set */
@@ -1838,7 +1839,8 @@ zend_object_iterator *spl_filesystem_tree_get_iterator(zend_class_entry *ce, zva
18381839
dir_object = Z_SPLFILESYSTEM_P(object);
18391840
iterator = spl_filesystem_object_to_iterator(dir_object);
18401841

1841-
ZVAL_COPY(&iterator->intern.data, object);
1842+
Z_ADDREF_P(object);
1843+
ZVAL_OBJ(&iterator->intern.data, Z_OBJ_P(object));
18421844
iterator->intern.funcs = &spl_filesystem_tree_it_funcs;
18431845

18441846
return &iterator->intern;

ext/spl/spl_dllist.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1356,7 +1356,8 @@ zend_object_iterator *spl_dllist_get_iterator(zend_class_entry *ce, zval *object
13561356

13571357
zend_iterator_init((zend_object_iterator*)iterator);
13581358

1359-
ZVAL_COPY(&iterator->intern.it.data, object);
1359+
Z_ADDREF_P(object);
1360+
ZVAL_OBJ(&iterator->intern.it.data, Z_OBJ_P(object));
13601361
iterator->intern.it.funcs = &spl_dllist_it_funcs;
13611362
iterator->intern.ce = ce;
13621363
iterator->traverse_position = dllist_object->traverse_position;

ext/spl/spl_fixedarray.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1004,7 +1004,8 @@ zend_object_iterator *spl_fixedarray_get_iterator(zend_class_entry *ce, zval *ob
10041004

10051005
zend_iterator_init((zend_object_iterator*)iterator);
10061006

1007-
ZVAL_COPY(&iterator->intern.it.data, object);
1007+
Z_ADDREF_P(object);
1008+
ZVAL_OBJ(&iterator->intern.it.data, Z_OBJ_P(object));
10081009
iterator->intern.it.funcs = &spl_fixedarray_it_funcs;
10091010
iterator->intern.ce = ce;
10101011
ZVAL_UNDEF(&iterator->intern.value);

0 commit comments

Comments
 (0)