]> granicus.if.org Git - php/commitdiff
Regenerate zend_vm_execute.h
authorDmitry Stogov <dmitry@php.net>
Tue, 6 May 2008 09:41:39 +0000 (09:41 +0000)
committerDmitry Stogov <dmitry@php.net>
Tue, 6 May 2008 09:41:39 +0000 (09:41 +0000)
Zend/zend_vm_execute.h

index e23f8d344a1935af89bd11775ac2a7bea1794cc3..567493a3a0777f42d5a237b5c80d0083e1f1ed91 100644 (file)
@@ -515,10 +515,14 @@ static int ZEND_HANDLE_EXCEPTION_SPEC_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
 
                                switch (brk_opline->opcode) {
                                        case ZEND_SWITCH_FREE:
-                                               zend_switch_free(&EX_T(brk_opline->op1.u.var), brk_opline->extended_value TSRMLS_CC);
+                                               if (brk_opline->op1.u.EA.type != EXT_TYPE_FREE_ON_RETURN) {
+                                                       zend_switch_free(&EX_T(brk_opline->op1.u.var), brk_opline->extended_value TSRMLS_CC);
+                                               }
                                                break;
                                        case ZEND_FREE:
-                                               zendi_zval_dtor(EX_T(brk_opline->op1.u.var).tmp_var);
+                                               if (brk_opline->op1.u.EA.type != EXT_TYPE_FREE_ON_RETURN) {
+                                                       zendi_zval_dtor(EX_T(brk_opline->op1.u.var).tmp_var);
+                                               }
                                                break;
                                }
                        }
@@ -724,10 +728,14 @@ static int ZEND_GOTO_SPEC_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
 
        switch (brk_opline->opcode) {
                case ZEND_SWITCH_FREE:
-                       zend_switch_free(&EX_T(brk_opline->op1.u.var), brk_opline->extended_value TSRMLS_CC);
+                       if (brk_opline->op1.u.EA.type != EXT_TYPE_FREE_ON_RETURN) {
+                               zend_switch_free(&EX_T(brk_opline->op1.u.var), brk_opline->extended_value TSRMLS_CC);
+                       }
                        break;
                case ZEND_FREE:
-                       zendi_zval_dtor(EX_T(brk_opline->op1.u.var).tmp_var);
+                       if (brk_opline->op1.u.EA.type != EXT_TYPE_FREE_ON_RETURN) {
+                               zendi_zval_dtor(EX_T(brk_opline->op1.u.var).tmp_var);
+                       }
                        break;
        }
        ZEND_VM_JMP(opline->op1.u.jmp_addr);