From: Marcus Boerger Date: Mon, 24 Jan 2005 20:03:48 +0000 (+0000) Subject: - MFH Second part of #30725 X-Git-Tag: php-5.0.4RC1~265 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=ac7c553f0ded01fd6549bfff6e8a9c720f7174e6;p=php - MFH Second part of #30725 --- diff --git a/Zend/tests/bug30725.phpt b/Zend/tests/bug30725.phpt index 511ab815f3..ce6c9a50a2 100755 --- a/Zend/tests/bug30725.phpt +++ b/Zend/tests/bug30725.phpt @@ -27,6 +27,6 @@ catch(Exception $e) ?> ===DONE=== ----EXPECT--- +--EXPECT-- Caught ===DONE=== diff --git a/Zend/zend_execute.c b/Zend/zend_execute.c index 40f59fe112..24347bfd8e 100644 --- a/Zend/zend_execute.c +++ b/Zend/zend_execute.c @@ -3747,10 +3747,14 @@ int zend_fe_reset_handler(ZEND_OPCODE_HANDLER_ARGS) if (ce && ce->get_iterator) { iter = ce->get_iterator(ce, array_ptr TSRMLS_CC); - if (iter) { + if (iter && !EG(exception)) { array_ptr = zend_iterator_wrap(iter TSRMLS_CC); } else { - array_ptr->refcount++; + zval_ptr_dtor(&array_ptr); + FREE_OP(Ts, op1, EG(free_op1)); + zend_throw_exception_internal(NULL TSRMLS_CC); + NEXT_OPCODE(); + return 0; } }