summaryrefslogtreecommitdiff
path: root/Zend/zend_vm_execute.h
diff options
context:
space:
mode:
authorDmitry Stogov <dmitry@php.net>2009-08-18 10:12:32 +0000
committerDmitry Stogov <dmitry@php.net>2009-08-18 10:12:32 +0000
commitf1ab855cfe9bc4a688014d2bdca326777ba7ef02 (patch)
tree943fcb938c4b4c47ae004cd264dd91c39b83aa65 /Zend/zend_vm_execute.h
parenta515259047a86d5ce9fe7d93c8f4f95718206952 (diff)
downloadphp-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.h8
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: