diff options
author | Dmitry Stogov <dmitry@zend.com> | 2014-02-12 18:08:11 +0400 |
---|---|---|
committer | Dmitry Stogov <dmitry@zend.com> | 2014-02-12 18:08:11 +0400 |
commit | be82a077769641331ee5914c60df44ba3f862aff (patch) | |
tree | 673803f676ae69c0a3aabc3046feafdf0361b670 /Zend/zend_iterators.c | |
parent | 4e66abad54b25ca367fcb6da78524e3c4024e2a0 (diff) | |
download | php-git-be82a077769641331ee5914c60df44ba3f862aff.tar.gz |
Use better data structures (incomplete)
Diffstat (limited to 'Zend/zend_iterators.c')
-rw-r--r-- | Zend/zend_iterators.c | 21 |
1 files changed, 7 insertions, 14 deletions
diff --git a/Zend/zend_iterators.c b/Zend/zend_iterators.c index b433cbe1ab..bb41ab9000 100644 --- a/Zend/zend_iterators.c +++ b/Zend/zend_iterators.c @@ -24,8 +24,12 @@ static zend_class_entry zend_iterator_class_entry; +static void iter_wrapper_dtor(zend_object *object TSRMLS_DC); + static zend_object_handlers iterator_object_handlers = { - ZEND_OBJECTS_STORE_HANDLERS, + iter_wrapper_dtor, + NULL, + NULL, NULL, /* prop read */ NULL, /* prop write */ NULL, /* read dim */ @@ -61,20 +65,9 @@ static void iter_wrapper_dtor(zend_object *object TSRMLS_DC) iter->funcs->dtor(iter TSRMLS_CC); } -ZEND_API zval *zend_iterator_wrap(zend_object_iterator *iter TSRMLS_DC) +ZEND_API void zend_iterator_wrap(zend_object_iterator *iter, zval *wrapped TSRMLS_DC) { -//??? - return NULL; -#if 0 - zval *wrapped; - - MAKE_STD_ZVAL(wrapped); - Z_TYPE_P(wrapped) = IS_OBJECT; - Z_OBJ_HANDLE_P(wrapped) = zend_objects_store_put(iter, iter_wrapper_dtor, NULL, NULL TSRMLS_CC); - Z_OBJ_HT_P(wrapped) = &iterator_object_handlers; - - return wrapped; -#endif + ZVAL_OBJ(wrapped, &iter->std); } ZEND_API enum zend_object_iterator_kind zend_iterator_unwrap( |