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;
}
}
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);