diff options
author | Dmitry Stogov <dmitry@zend.com> | 2014-02-26 15:01:08 +0400 |
---|---|---|
committer | Dmitry Stogov <dmitry@zend.com> | 2014-02-26 15:01:08 +0400 |
commit | 495551aa8c3d66ee16ab91c1fb97329f10c0632c (patch) | |
tree | 19f39597305afd611b7a6788964f7f14ff120208 /Zend/zend_iterators.c | |
parent | a4a86df3c0c47362a6932585a447f87dc9823451 (diff) | |
download | php-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.c | 7 |
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( |