]> granicus.if.org Git - php/commitdiff
- MFH Second part of #30725
authorMarcus Boerger <helly@php.net>
Mon, 24 Jan 2005 20:03:48 +0000 (20:03 +0000)
committerMarcus Boerger <helly@php.net>
Mon, 24 Jan 2005 20:03:48 +0000 (20:03 +0000)
Zend/tests/bug30725.phpt
Zend/zend_execute.c

index 511ab815f3e417e7dbd4ad50e04e6448569ae531..ce6c9a50a260910a3a6322cb9d5517c50846b8a5 100755 (executable)
@@ -27,6 +27,6 @@ catch(Exception $e)
 
 ?>
 ===DONE===
----EXPECT---
+--EXPECT--
 Caught
 ===DONE===
index 40f59fe112d12cc12f7e2fea3d3581a1be0abe6f..24347bfd8ebadee7390e415f78b5d3bda64c4507 100644 (file)
@@ -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;
                }
        }