@@ -524,9 +524,9 @@ static int zend_jit_trace_record_fake_init_call_ex(zend_execute_data *call, zend
524
524
if (func -> type == ZEND_USER_FUNCTION ) {
525
525
jit_extension =
526
526
(zend_jit_op_array_trace_extension * )ZEND_FUNC_INFO (& func -> op_array );
527
- if (UNEXPECTED (!jit_extension
528
- || !(jit_extension -> func_info .flags & ZEND_FUNC_JIT_ON_HOT_TRACE )
529
- || (func -> op_array .fn_flags & ZEND_ACC_FAKE_CLOSURE ))) {
527
+ if (UNEXPECTED (!jit_extension && ( func -> op_array . fn_flags & ZEND_ACC_CLOSURE ))
528
+ || ( jit_extension && !(jit_extension -> func_info .flags & ZEND_FUNC_JIT_ON_HOT_TRACE ) )
529
+ || (func -> op_array .fn_flags & ZEND_ACC_FAKE_CLOSURE )) {
530
530
return -1 ;
531
531
}
532
532
if (func -> op_array .fn_flags & ZEND_ACC_CLOSURE ) {
@@ -1104,26 +1104,15 @@ zend_jit_trace_stop ZEND_FASTCALL zend_jit_trace_execute(zend_execute_data *ex,
1104
1104
if (func -> type == ZEND_USER_FUNCTION ) {
1105
1105
jit_extension =
1106
1106
(zend_jit_op_array_trace_extension * )ZEND_FUNC_INFO (& func -> op_array );
1107
+ if (UNEXPECTED (!jit_extension && (func -> op_array .fn_flags & ZEND_ACC_CLOSURE ))
1108
+ || (jit_extension && !(jit_extension -> func_info .flags & ZEND_FUNC_JIT_ON_HOT_TRACE ))
1109
+ || (func -> op_array .fn_flags & ZEND_ACC_FAKE_CLOSURE )) {
1110
+ stop = ZEND_JIT_TRACE_STOP_INTERPRETER ;
1111
+ break ;
1112
+ }
1107
1113
if (func -> op_array .fn_flags & ZEND_ACC_CLOSURE ) {
1108
- if (UNEXPECTED (!jit_extension
1109
- || !(jit_extension -> func_info .flags & ZEND_FUNC_JIT_ON_HOT_TRACE )
1110
- || (func -> op_array .fn_flags & ZEND_ACC_FAKE_CLOSURE ))) {
1111
- stop = ZEND_JIT_TRACE_STOP_INTERPRETER ;
1112
- break ;
1113
- }
1114
1114
func = (zend_function * )jit_extension -> op_array ;
1115
1115
}
1116
- // First not-skipped op
1117
- zend_op * opline = func -> op_array .opcodes ;
1118
- if (!(func -> op_array .fn_flags & ZEND_ACC_HAS_TYPE_HINTS )) {
1119
- while (opline -> opcode == ZEND_RECV || opline -> opcode == ZEND_RECV_INIT ) {
1120
- opline ++ ;
1121
- }
1122
- }
1123
- if (jit_extension && ZEND_OP_TRACE_INFO (opline , jit_extension -> offset )-> trace_flags & ZEND_JIT_TRACE_BLACKLISTED ) {
1124
- stop = ZEND_JIT_TRACE_STOP_BLACK_LIST ;
1125
- break ;
1126
- }
1127
1116
}
1128
1117
1129
1118
#ifndef HAVE_GCC_GLOBAL_REGS
0 commit comments