summaryrefslogtreecommitdiff
path: root/Zend
diff options
context:
space:
mode:
authorXinchen Hui <laruence@php.net>2012-08-25 21:55:36 +0800
committerXinchen Hui <laruence@php.net>2012-08-25 21:55:36 +0800
commite888d48d9ba9adbd37d8c102c40b90bedf20ca7a (patch)
treeadaf6261654bd1f0be2169133cc07ca1787b5bf6 /Zend
parent326aa087532d7eaecc8fefff58bb2a0b008b5ac8 (diff)
parent383eafe482d0e07e6bc8a6b5c1dccb69a9f17bb7 (diff)
downloadphp-git-e888d48d9ba9adbd37d8c102c40b90bedf20ca7a.tar.gz
Merge branch 'PHP-5.4'
Diffstat (limited to 'Zend')
-rw-r--r--Zend/zend_vm_execute.skl2
-rw-r--r--Zend/zend_vm_gen.php7
2 files changed, 8 insertions, 1 deletions
diff --git a/Zend/zend_vm_execute.skl b/Zend/zend_vm_execute.skl
index f5d0b7879a..0c5e8a3c9c 100644
--- a/Zend/zend_vm_execute.skl
+++ b/Zend/zend_vm_execute.skl
@@ -5,8 +5,8 @@ ZEND_API void {%EXECUTOR_NAME%}(zend_op_array *op_array TSRMLS_DC)
DCL_OPLINE
zend_execute_data *execute_data;
zend_bool nested = 0;
- zend_bool original_in_execution = EG(in_execution);
{%HELPER_VARS%}
+ {%EXECUTION_STATUS%}
{%INTERNAL_LABELS%}
diff --git a/Zend/zend_vm_gen.php b/Zend/zend_vm_gen.php
index 3163000e47..fde1baf90b 100644
--- a/Zend/zend_vm_gen.php
+++ b/Zend/zend_vm_gen.php
@@ -927,6 +927,13 @@ function gen_executor($f, $skl, $spec, $kind, $executor_name, $initializer_name,
skip_blanks($f, $m[1], $m[3]."\n");
}
break;
+ case "EXECUTION_STATUS":
+ if ($kind != ZEND_VM_KIND_GOTO) {
+ out($f, $m[1] . "zend_bool original_in_execution = EG(in_execution);\n");
+ } else {
+ out($f, $m[1] . "zend_bool original_in_execution = op_array? EG(in_execution) : 0;\n");
+ }
+ break;
case "INTERNAL_LABELS":
if ($kind == ZEND_VM_KIND_GOTO) {
// Emit array of labels of opcode handlers and code for