]> granicus.if.org Git - php/commitdiff
- More exception related issues
authorMarcus Boerger <helly@php.net>
Sun, 21 May 2006 17:36:52 +0000 (17:36 +0000)
committerMarcus Boerger <helly@php.net>
Sun, 21 May 2006 17:36:52 +0000 (17:36 +0000)
ext/spl/spl_iterators.c

index ce88d32312e49adab53a3a250b6cf2ff5187e57c..d8694279cab243c47fd55f4419846ede700eb833 100755 (executable)
@@ -1317,8 +1317,10 @@ SPL_METHOD(RecursiveFilterIterator, getChildren)
        intern = (spl_dual_it_object*)zend_object_store_get_object(getThis() TSRMLS_CC);
 
        zend_call_method_with_0_params(&intern->inner.zobject, intern->inner.ce, NULL, "getchildren", &retval);
-       if (!EG(exception)) {
+       if (!EG(exception) && retval) {
                spl_instantiate_arg_ex1(Z_OBJCE_P(getThis()), &return_value, 0, retval TSRMLS_CC);
+       }
+       if (retval) {
                zval_ptr_dtor(&retval);
        }
 } /* }}} */
@@ -1357,8 +1359,10 @@ SPL_METHOD(ParentIterator, getChildren)
        intern = (spl_dual_it_object*)zend_object_store_get_object(getThis() TSRMLS_CC);
 
        zend_call_method_with_0_params(&intern->inner.zobject, intern->inner.ce, NULL, "getchildren", &retval);
-       if (retval) {
+       if (!EG(exception) && retval) {
                spl_instantiate_arg_ex1(Z_OBJCE_P(getThis()), &return_value, 0, retval TSRMLS_CC);
+       }
+       if (retval) {
                zval_ptr_dtor(&retval);
        }
 } /* }}} */