diff options
author | Dmitry Stogov <dmitry@zend.com> | 2019-04-09 00:41:11 +0300 |
---|---|---|
committer | Dmitry Stogov <dmitry@zend.com> | 2019-04-09 00:41:11 +0300 |
commit | 7b8212f4d119b1f055238b183092249a022a7841 (patch) | |
tree | 7cfc135136e35b9135f5a6a3271341b2be870d45 | |
parent | bdac9ef10d90997f9576564dde693cbef6594142 (diff) | |
download | php-git-7b8212f4d119b1f055238b183092249a022a7841.tar.gz |
Repare SWITCH VM
-rw-r--r-- | Zend/zend_vm_gen.php | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/Zend/zend_vm_gen.php b/Zend/zend_vm_gen.php index 3cad2696d3..fa620d73ca 100644 --- a/Zend/zend_vm_gen.php +++ b/Zend/zend_vm_gen.php @@ -1805,7 +1805,7 @@ function gen_executor($f, $skl, $spec, $kind, $executor_name, $initializer_name) $prolog = $m[1]; out($f,$prolog."if (UNEXPECTED(execute_data == NULL)) {\n"); out($f,$prolog."\tstatic const void* labels[] = {\n"); - gen_labels($f, $spec, ZEND_VM_KIND_GOTO, $prolog."\t\t", $specs); + gen_labels($f, $spec, ($kind == ZEND_VM_KIND_HYBRID) ? ZEND_VM_KIND_GOTO : $kind, $prolog."\t\t", $specs); out($f,$prolog."\t};\n"); out($f,$prolog."\tzend_opcode_handlers = (const void **) labels;\n"); out($f,$prolog."\tzend_handlers_count = sizeof(labels) / sizeof(void*);\n"); @@ -1920,7 +1920,7 @@ function gen_executor($f, $skl, $spec, $kind, $executor_name, $initializer_name) out($f,$prolog.$executor_name."_ex(NULL);\n"); } else { out($f,$prolog."static const void *labels[] = {\n"); - gen_labels($f, $spec, ZEND_VM_KIND_CALL, $prolog."\t", $specs, $switch_labels); + gen_labels($f, $spec, ($kind == ZEND_VM_KIND_HYBRID) ? ZEND_VM_KIND_CALL : $kind, $prolog."\t", $specs, $switch_labels); out($f,$prolog."};\n"); out($f,$prolog."static const uint32_t specs[] = {\n"); gen_specs($f, $prolog."\t", $specs); |