diff options
Diffstat (limited to 'ext/spl/spl_array.c')
-rw-r--r-- | ext/spl/spl_array.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/ext/spl/spl_array.c b/ext/spl/spl_array.c index 0181c84f27..32f1fd8bbd 100644 --- a/ext/spl/spl_array.c +++ b/ext/spl/spl_array.c @@ -1163,7 +1163,8 @@ zend_object_iterator *spl_array_get_iterator(zend_class_entry *ce, zval *object, zend_iterator_init(&iterator->it); - ZVAL_COPY(&iterator->it.data, object); + Z_ADDREF_P(object); + ZVAL_OBJ(&iterator->it.data, Z_OBJ_P(object)); iterator->it.funcs = &spl_array_it_funcs; iterator->ce = ce; ZVAL_UNDEF(&iterator->value); |