@@ -1805,7 +1805,7 @@ function gen_executor($f, $skl, $spec, $kind, $executor_name, $initializer_name)
1805
1805
$ prolog = $ m [1 ];
1806
1806
out ($ f ,$ prolog ."if (UNEXPECTED(execute_data == NULL)) { \n" );
1807
1807
out ($ f ,$ prolog ."\tstatic const void* labels[] = { \n" );
1808
- gen_labels ($ f , $ spec , ZEND_VM_KIND_GOTO , $ prolog ."\t\t" , $ specs );
1808
+ gen_labels ($ f , $ spec , ( $ kind == ZEND_VM_KIND_HYBRID ) ? ZEND_VM_KIND_GOTO : $ kind , $ prolog ."\t\t" , $ specs );
1809
1809
out ($ f ,$ prolog ."\t}; \n" );
1810
1810
out ($ f ,$ prolog ."\tzend_opcode_handlers = (const void **) labels; \n" );
1811
1811
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)
1920
1920
out ($ f ,$ prolog .$ executor_name ."_ex(NULL); \n" );
1921
1921
} else {
1922
1922
out ($ f ,$ prolog ."static const void *labels[] = { \n" );
1923
- gen_labels ($ f , $ spec , ZEND_VM_KIND_CALL , $ prolog ."\t" , $ specs , $ switch_labels );
1923
+ gen_labels ($ f , $ spec , ( $ kind == ZEND_VM_KIND_HYBRID ) ? ZEND_VM_KIND_CALL : $ kind , $ prolog ."\t" , $ specs , $ switch_labels );
1924
1924
out ($ f ,$ prolog ."}; \n" );
1925
1925
out ($ f ,$ prolog ."static const uint32_t specs[] = { \n" );
1926
1926
gen_specs ($ f , $ prolog ."\t" , $ specs );
0 commit comments