helly Tue Mar 9 12:35:25 2004 EDT Modified files: /php-src/ext/spl spl_iterators.c Log: Access to inner iterator was missing http://cvs.php.net/diff.php/php-src/ext/spl/spl_iterators.c?r1=1.25&r2=1.26&ty=u Index: php-src/ext/spl/spl_iterators.c diff -u php-src/ext/spl/spl_iterators.c:1.25 php-src/ext/spl/spl_iterators.c:1.26 --- php-src/ext/spl/spl_iterators.c:1.25 Tue Mar 9 11:38:37 2004 +++ php-src/ext/spl/spl_iterators.c Tue Mar 9 12:35:18 2004 @@ -16,7 +16,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: spl_iterators.c,v 1.25 2004/03/09 16:38:37 helly Exp $ */ +/* $Id: spl_iterators.c,v 1.26 2004/03/09 17:35:18 helly Exp $ */ #ifdef HAVE_CONFIG_H # include "config.h" @@ -595,6 +595,19 @@ spl_dual_it_construct(INTERNAL_FUNCTION_PARAM_PASSTHRU, zend_ce_iterator, DIT_Default); } +SPL_METHOD(dual_it, getInnerIterator) +{ + spl_dual_it_object *intern; + + intern = (spl_dual_it_object*)zend_object_store_get_object(getThis() TSRMLS_CC); + + if (intern->inner.zobject) { + RETVAL_ZVAL(intern->inner.zobject, 0, 0); + } else { + RETURN_NULL(); + } +} + static INLINE void spl_dual_it_free(spl_dual_it_object *intern TSRMLS_DC) { if (intern->current.data) { @@ -840,12 +853,13 @@ ZEND_END_ARG_INFO(); static zend_function_entry spl_funcs_FilterIterator[] = { - SPL_ME(dual_it, __construct, arginfo_filter_it___construct, ZEND_ACC_PUBLIC) - SPL_ME(FilterIterator, rewind, NULL, ZEND_ACC_PUBLIC) - SPL_ME(dual_it, valid, NULL, ZEND_ACC_PUBLIC) - SPL_ME(dual_it, key, NULL, ZEND_ACC_PUBLIC) - SPL_ME(dual_it, current, NULL, ZEND_ACC_PUBLIC) - SPL_ME(FilterIterator, next, NULL, ZEND_ACC_PUBLIC) + SPL_ME(dual_it, __construct, arginfo_filter_it___construct, ZEND_ACC_PUBLIC) + SPL_ME(FilterIterator, rewind, NULL, ZEND_ACC_PUBLIC) + SPL_ME(dual_it, valid, NULL, ZEND_ACC_PUBLIC) + SPL_ME(dual_it, key, NULL, ZEND_ACC_PUBLIC) + SPL_ME(dual_it, current, NULL, ZEND_ACC_PUBLIC) + SPL_ME(FilterIterator, next, NULL, ZEND_ACC_PUBLIC) + SPL_ME(dual_it, getInnerIterator, NULL, ZEND_ACC_PUBLIC) SPL_ABSTRACT_ME(FilterIterator, accept, NULL) {NULL, NULL, NULL} }; @@ -856,10 +870,11 @@ ZEND_END_ARG_INFO(); static zend_function_entry spl_funcs_ParentIterator[] = { - SPL_ME(ParentIterator, __construct, arginfo_parent_it___construct, ZEND_ACC_PUBLIC) - SPL_MA(ParentIterator, accept, ParentIterator, hasChildren, NULL, ZEND_ACC_PUBLIC) - SPL_ME(ParentIterator, hasChildren, NULL, ZEND_ACC_PUBLIC) - SPL_ME(ParentIterator, getChildren, NULL, ZEND_ACC_PUBLIC) + SPL_ME(ParentIterator, __construct, arginfo_parent_it___construct, ZEND_ACC_PUBLIC) + SPL_MA(ParentIterator, accept, ParentIterator, hasChildren, NULL, ZEND_ACC_PUBLIC) + SPL_ME(ParentIterator, hasChildren, NULL, ZEND_ACC_PUBLIC) + SPL_ME(ParentIterator, getChildren, NULL, ZEND_ACC_PUBLIC) + SPL_ME(dual_it, getInnerIterator, NULL, ZEND_ACC_PUBLIC) {NULL, NULL, NULL} }; @@ -992,14 +1007,15 @@ ZEND_END_ARG_INFO(); static zend_function_entry spl_funcs_LimitIterator[] = { - SPL_ME(LimitIterator, __construct, arginfo_limit_it___construct, ZEND_ACC_PUBLIC) - SPL_ME(LimitIterator, rewind, NULL, ZEND_ACC_PUBLIC) - SPL_ME(LimitIterator, valid, NULL, ZEND_ACC_PUBLIC) - SPL_ME(dual_it, key, NULL, ZEND_ACC_PUBLIC) - SPL_ME(dual_it, current, NULL, ZEND_ACC_PUBLIC) - SPL_ME(LimitIterator, next, NULL, ZEND_ACC_PUBLIC) - SPL_ME(LimitIterator, seek, arginfo_limit_it_seek, ZEND_ACC_PUBLIC) - SPL_ME(LimitIterator, getPosition, NULL, ZEND_ACC_PUBLIC) + SPL_ME(LimitIterator, __construct, arginfo_limit_it___construct, ZEND_ACC_PUBLIC) + SPL_ME(LimitIterator, rewind, NULL, ZEND_ACC_PUBLIC) + SPL_ME(LimitIterator, valid, NULL, ZEND_ACC_PUBLIC) + SPL_ME(dual_it, key, NULL, ZEND_ACC_PUBLIC) + SPL_ME(dual_it, current, NULL, ZEND_ACC_PUBLIC) + SPL_ME(LimitIterator, next, NULL, ZEND_ACC_PUBLIC) + SPL_ME(LimitIterator, seek, arginfo_limit_it_seek, ZEND_ACC_PUBLIC) + SPL_ME(LimitIterator, getPosition, NULL, ZEND_ACC_PUBLIC) + SPL_ME(dual_it, getInnerIterator, NULL, ZEND_ACC_PUBLIC) {NULL, NULL, NULL} }; @@ -1125,14 +1141,15 @@ ZEND_END_ARG_INFO(); static zend_function_entry spl_funcs_CachingIterator[] = { - SPL_ME(CachingIterator, __construct, arginfo_caching_it___construct, ZEND_ACC_PUBLIC) - SPL_ME(CachingIterator, rewind, NULL, ZEND_ACC_PUBLIC) - SPL_ME(CachingIterator, valid, NULL, ZEND_ACC_PUBLIC) - SPL_ME(dual_it, key, NULL, ZEND_ACC_PUBLIC) - SPL_ME(dual_it, current, NULL, ZEND_ACC_PUBLIC) - SPL_ME(CachingIterator, next, NULL, ZEND_ACC_PUBLIC) - SPL_ME(CachingIterator, hasNext, NULL, ZEND_ACC_PUBLIC) - SPL_ME(CachingIterator, __toString, NULL, ZEND_ACC_PUBLIC) + SPL_ME(CachingIterator, __construct, arginfo_caching_it___construct, ZEND_ACC_PUBLIC) + SPL_ME(CachingIterator, rewind, NULL, ZEND_ACC_PUBLIC) + SPL_ME(CachingIterator, valid, NULL, ZEND_ACC_PUBLIC) + SPL_ME(dual_it, key, NULL, ZEND_ACC_PUBLIC) + SPL_ME(dual_it, current, NULL, ZEND_ACC_PUBLIC) + SPL_ME(CachingIterator, next, NULL, ZEND_ACC_PUBLIC) + SPL_ME(CachingIterator, hasNext, NULL, ZEND_ACC_PUBLIC) + SPL_ME(CachingIterator, __toString, NULL, ZEND_ACC_PUBLIC) + SPL_ME(dual_it, getInnerIterator, NULL, ZEND_ACC_PUBLIC) {NULL, NULL, NULL} };
-- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php