summaryrefslogtreecommitdiff
path: root/Zend/zend_iterators.c
diff options
context:
space:
mode:
authorDmitry Stogov <dmitry@zend.com>2014-02-26 15:01:08 +0400
committerDmitry Stogov <dmitry@zend.com>2014-02-26 15:01:08 +0400
commit495551aa8c3d66ee16ab91c1fb97329f10c0632c (patch)
tree19f39597305afd611b7a6788964f7f14ff120208 /Zend/zend_iterators.c
parenta4a86df3c0c47362a6932585a447f87dc9823451 (diff)
downloadphp-git-495551aa8c3d66ee16ab91c1fb97329f10c0632c.tar.gz
Fixed iterators API. zend_iterator_init() has to be used in each get_iterator() callback.
Diffstat (limited to 'Zend/zend_iterators.c')
-rw-r--r--Zend/zend_iterators.c7
1 files changed, 3 insertions, 4 deletions
diff --git a/Zend/zend_iterators.c b/Zend/zend_iterators.c
index 7610aadfc8..5514c8bba8 100644
--- a/Zend/zend_iterators.c
+++ b/Zend/zend_iterators.c
@@ -65,11 +65,10 @@ static void iter_wrapper_dtor(zend_object *object TSRMLS_DC)
iter->funcs->dtor(iter TSRMLS_CC);
}
-ZEND_API void zend_iterator_wrap(zend_object_iterator *iter, zval *wrapped TSRMLS_DC)
+ZEND_API void zend_iterator_init(zend_object_iterator *iter TSRMLS_DC)
{
- ZVAL_OBJ(wrapped, &iter->std);
- //??? hack (it would be better implement it in anothe way)
- Z_OBJ_HT_P(wrapped) = &iterator_object_handlers;
+ zend_object_std_init(&iter->std, &zend_iterator_class_entry);
+ iter->std.handlers = &iterator_object_handlers;
}
ZEND_API enum zend_object_iterator_kind zend_iterator_unwrap(