diff options
Diffstat (limited to 'Zend/zend_vm_def.h')
| -rw-r--r-- | Zend/zend_vm_def.h | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/Zend/zend_vm_def.h b/Zend/zend_vm_def.h index ed521c9c72..cbf2f1fb61 100644 --- a/Zend/zend_vm_def.h +++ b/Zend/zend_vm_def.h @@ -3091,6 +3091,11 @@ ZEND_VM_HANDLER(77, ZEND_FE_RESET, CONST|TMP|VAR|CV, ANY) if (EG(exception)) { array_ptr->refcount--; zval_ptr_dtor(&array_ptr); + if (opline->extended_value & ZEND_FE_RESET_VARIABLE) { + FREE_OP1_VAR_PTR(); + } else { + FREE_OP1_IF_VAR(); + } ZEND_VM_NEXT_OPCODE(); } } @@ -3098,6 +3103,11 @@ ZEND_VM_HANDLER(77, ZEND_FE_RESET, CONST|TMP|VAR|CV, ANY) if (EG(exception)) { array_ptr->refcount--; zval_ptr_dtor(&array_ptr); + if (opline->extended_value & ZEND_FE_RESET_VARIABLE) { + FREE_OP1_VAR_PTR(); + } else { + FREE_OP1_IF_VAR(); + } ZEND_VM_NEXT_OPCODE(); } iter->index = -1; /* will be set to 0 before using next handler */ |
