diff options
| author | Dmitry Stogov <dmitry@php.net> | 2009-08-18 10:12:32 +0000 |
|---|---|---|
| committer | Dmitry Stogov <dmitry@php.net> | 2009-08-18 10:12:32 +0000 |
| commit | f1ab855cfe9bc4a688014d2bdca326777ba7ef02 (patch) | |
| tree | 943fcb938c4b4c47ae004cd264dd91c39b83aa65 /Zend/zend_vm_execute.h | |
| parent | a515259047a86d5ce9fe7d93c8f4f95718206952 (diff) | |
| download | php-git-f1ab855cfe9bc4a688014d2bdca326777ba7ef02.tar.gz | |
Fixed ability to call user functions from user opcodes without recursion
Diffstat (limited to 'Zend/zend_vm_execute.h')
| -rw-r--r-- | Zend/zend_vm_execute.h | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/Zend/zend_vm_execute.h b/Zend/zend_vm_execute.h index f809f4e740..53016c48a6 100644 --- a/Zend/zend_vm_execute.h +++ b/Zend/zend_vm_execute.h @@ -330,16 +330,12 @@ static int ZEND_FASTCALL zend_do_fcall_common_helper_SPEC(ZEND_OPCODE_HANDLER_AR EX_T(opline->result.u.var).var.fcall_returned_reference = EX(function_state).function->common.return_reference; } -#if 1 if (zend_execute == execute && !EG(exception)) { EX(call_opline) = opline; ZEND_VM_ENTER(); } else { zend_execute(EG(active_op_array) TSRMLS_CC); } -#else - zend_execute(EG(active_op_array) TSRMLS_CC); -#endif EG(opline_ptr) = &EX(opline); EG(active_op_array) = EX(op_array); @@ -699,6 +695,10 @@ static int ZEND_FASTCALL ZEND_USER_OPCODE_SPEC_HANDLER(ZEND_OPCODE_HANDLER_ARGS ZEND_VM_CONTINUE(); case ZEND_USER_OPCODE_RETURN: return zend_leave_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); + case ZEND_USER_OPCODE_ENTER: + ZEND_VM_ENTER(); + case ZEND_USER_OPCODE_LEAVE: + ZEND_VM_LEAVE(); case ZEND_USER_OPCODE_DISPATCH: ZEND_VM_DISPATCH(EX(opline)->opcode, EX(opline)); default: |
