]> granicus.if.org Git - php/commitdiff
Fix bug #26698 (exceptions handled properly during argument passing to functions)
authorZeev Suraski <zeev@php.net>
Tue, 10 Feb 2004 17:01:55 +0000 (17:01 +0000)
committerZeev Suraski <zeev@php.net>
Tue, 10 Feb 2004 17:01:55 +0000 (17:01 +0000)
Zend/zend_execute.c

index ab86f68daffdec8c7bd9fe47e628ab52636cf644..1ad0a2b992a4457b867e99a8943ba2f2be524bcd 100644 (file)
@@ -4124,7 +4124,15 @@ int zend_handle_exception_handler(ZEND_OPCODE_HANDLER_ARGS)
        zend_uint op_num = EG(opline_before_exception)-EG(active_op_array)->opcodes;
        int i;
        int encapsulating_block=-1;
+       zval **stack_zval_pp;
        
+       stack_zval_pp = (zval **) EG(argument_stack).top_element - 1;
+       while (*stack_zval_pp != NULL) {
+               zval_ptr_dtor(stack_zval_pp);
+               EG(argument_stack).top_element--;
+               stack_zval_pp--;
+       }
+
        for (i=0; i<EG(active_op_array)->last_try_catch; i++) {
                if (EG(active_op_array)->try_catch_array[i].try_op > op_num) {
                        /* further blocks will not be relevant... */