From: Xinchen Hui Date: Sun, 28 Jun 2015 13:16:08 +0000 (+0800) Subject: Fixed ZEND_VM_DEFINE_OP build when --without-specializer X-Git-Tag: php-7.1.0alpha3~25^2~149 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=f70950d0049fad1a2de00396680618efa31485df;p=php Fixed ZEND_VM_DEFINE_OP build when --without-specializer --- 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; + } } } }