From f70950d0049fad1a2de00396680618efa31485df Mon Sep 17 00:00:00 2001 From: Xinchen Hui Date: Sun, 28 Jun 2015 21:16:08 +0800 Subject: [PATCH] Fixed ZEND_VM_DEFINE_OP build when --without-specializer --- Zend/zend_vm_gen.php | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/Zend/zend_vm_gen.php b/Zend/zend_vm_gen.php index 316eb55a11..ff181ce1e7 100644 --- a/Zend/zend_vm_gen.php +++ b/Zend/zend_vm_gen.php @@ -866,8 +866,11 @@ function gen_labels($f, $spec, $kind, $prolog) { $next++; } $next = $num+1; - // Emit pointer to unspecialized handler - switch ($kind) { + + //ugly trick for ZEND_VM_DEFINE_OP + if ($dsc["code"]) { + // Emit pointer to unspecialized handler + switch ($kind) { case ZEND_VM_KIND_CALL: out($f,$prolog.$dsc["op"]."_HANDLER,\n"); break; @@ -877,6 +880,19 @@ function gen_labels($f, $spec, $kind, $prolog) { case ZEND_VM_KIND_GOTO: out($f,$prolog."(void*)&&".$dsc["op"]."_HANDLER,\n"); break; + } + } else { + switch ($kind) { + case ZEND_VM_KIND_CALL: + out($f,$prolog."ZEND_NULL_HANDLER,\n"); + break; + case ZEND_VM_KIND_SWITCH: + out($f,$prolog."(void*)(uintptr_t)-1,\n"); + break; + case ZEND_VM_KIND_GOTO: + out($f,$prolog."(void*)&&ZEND_NULL_HANDLER,\n"); + break; + } } } } -- 2.50.1