helly Sat Nov 22 15:49:15 2003 EDT Modified files: /spl spl_iterators.c Log: - rename getLevel() to getDepth() - make parameter to getSubIterator() optinal - refcount fix Index: spl/spl_iterators.c diff -u spl/spl_iterators.c:1.4 spl/spl_iterators.c:1.5 --- spl/spl_iterators.c:1.4 Tue Nov 18 17:14:19 2003 +++ spl/spl_iterators.c Sat Nov 22 15:49:15 2003 @@ -46,7 +46,7 @@ SPL_METHOD(RecursiveIteratorIterator, key); SPL_METHOD(RecursiveIteratorIterator, current); SPL_METHOD(RecursiveIteratorIterator, next); -SPL_METHOD(RecursiveIteratorIterator, getLevel); +SPL_METHOD(RecursiveIteratorIterator, getDepth); SPL_METHOD(RecursiveIteratorIterator, getSubIterator); static @@ -57,8 +57,7 @@ static ZEND_BEGIN_ARG_INFO(arginfo_recursive_it_getSubIterator, 0) - ZEND_ARG_INFO(0, iterator) - ZEND_ARG_INFO(0, mode) + ZEND_ARG_INFO(0, level) ZEND_END_ARG_INFO(); static zend_function_entry spl_funcs_RecursiveIteratorIterator[] = { @@ -68,7 +67,7 @@ SPL_ME(RecursiveIteratorIterator, key, NULL, ZEND_ACC_PUBLIC) SPL_ME(RecursiveIteratorIterator, current, NULL, ZEND_ACC_PUBLIC) SPL_ME(RecursiveIteratorIterator, next, NULL, ZEND_ACC_PUBLIC) - SPL_ME(RecursiveIteratorIterator, getLevel, NULL, ZEND_ACC_PUBLIC) + SPL_ME(RecursiveIteratorIterator, getDepth, NULL, ZEND_ACC_PUBLIC) SPL_ME(RecursiveIteratorIterator, getSubIterator,arginfo_recursive_it_getSubIterator, ZEND_ACC_PUBLIC) {NULL, NULL, NULL} }; @@ -321,6 +320,7 @@ intern->mode = mode; ce_iterator = Z_OBJCE_P(iterator); /* respect inheritance, don't use spl_ce_RecursiveIterator */ intern->iterators[0].iterator = ce_iterator->get_iterator(ce_iterator, iterator TSRMLS_CC); + iterator->refcount++; intern->iterators[0].zobject = iterator; intern->iterators[0].ce = ce_iterator; intern->iterators[0].state = RS_START; @@ -378,7 +378,7 @@ spl_recursive_it_move_forward_ex(object TSRMLS_CC); } -SPL_METHOD(RecursiveIteratorIterator, getLevel) +SPL_METHOD(RecursiveIteratorIterator, getDepth) { spl_recursive_it_object *object = (spl_recursive_it_object*)zend_object_store_get_object(getThis() TSRMLS_CC); @@ -388,10 +388,10 @@ SPL_METHOD(RecursiveIteratorIterator, getSubIterator) { spl_recursive_it_object *object = (spl_recursive_it_object*)zend_object_store_get_object(getThis() TSRMLS_CC); - int level; + int level = object->level; zval *zobject; - if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "l", &level) == FAILURE) { + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|l", &level) == FAILURE) { return; } if (level < 0 || level > object->level) {
-- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php