summaryrefslogtreecommitdiff
path: root/ext/spl/spl_array.c
diff options
context:
space:
mode:
Diffstat (limited to 'ext/spl/spl_array.c')
-rw-r--r--ext/spl/spl_array.c3
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);