Bad function detection

This commit is contained in:
Dmitry Stogov 2020-07-09 17:24:35 +03:00
parent 0d9bebac00
commit 9d14bdb377

View File

@ -475,7 +475,7 @@ static int zend_jit_trace_record_fake_init_call_ex(zend_execute_data *call, zend
}
func = call->func;
if (func->common.fn_flags & ZEND_ACC_CALL_VIA_TRAMPOLINE) {
if (func->common.fn_flags & (ZEND_ACC_CALL_VIA_TRAMPOLINE|ZEND_ACC_NEVER_CACHE)) {
/* TODO: Can we continue recording ??? */
return -1;
}
@ -855,6 +855,10 @@ zend_jit_trace_stop ZEND_FASTCALL zend_jit_trace_execute(zend_execute_data *ex,
/* TODO: Can we continue recording ??? */
stop = ZEND_JIT_TRACE_STOP_TRAMPOLINE;
break;
} else if (EX(call)->func->common.fn_flags & ZEND_ACC_NEVER_CACHE) {
/* TODO: Can we continue recording ??? */
stop = ZEND_JIT_TRACE_STOP_BAD_FUNC;
break;
}
func = EX(call)->func;
if (func->type == ZEND_USER_FUNCTION