mirror of
https://github.com/php/php-src.git
synced 2025-08-15 13:38:49 +02:00
Stop trace recording only on ENTER to FAKE_CLOSURE (continue on EXIT) (#16455)
This commit is contained in:
parent
99aa43a65a
commit
6d9f040d29
1 changed files with 6 additions and 2 deletions
|
@ -960,8 +960,7 @@ zend_jit_trace_stop ZEND_FASTCALL zend_jit_trace_execute(zend_execute_data *ex,
|
|||
jit_extension =
|
||||
(zend_jit_op_array_trace_extension*)ZEND_FUNC_INFO(op_array);
|
||||
if (UNEXPECTED(!jit_extension)
|
||||
|| UNEXPECTED(!(jit_extension->func_info.flags & ZEND_FUNC_JIT_ON_HOT_TRACE))
|
||||
|| (op_array->fn_flags & ZEND_ACC_FAKE_CLOSURE)) {
|
||||
|| UNEXPECTED(!(jit_extension->func_info.flags & ZEND_FUNC_JIT_ON_HOT_TRACE))) {
|
||||
stop = ZEND_JIT_TRACE_STOP_INTERPRETER;
|
||||
break;
|
||||
}
|
||||
|
@ -995,6 +994,11 @@ zend_jit_trace_stop ZEND_FASTCALL zend_jit_trace_execute(zend_execute_data *ex,
|
|||
break;
|
||||
}
|
||||
|
||||
if (EX(func)->op_array.fn_flags & ZEND_ACC_FAKE_CLOSURE) {
|
||||
stop = ZEND_JIT_TRACE_STOP_INTERPRETER;
|
||||
break;
|
||||
}
|
||||
|
||||
TRACE_RECORD(ZEND_JIT_TRACE_ENTER,
|
||||
EX(return_value) != NULL ? ZEND_JIT_TRACE_RETURN_VALUE_USED : 0,
|
||||
op_array);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue