/* TODO: Can we continue recording ??? */
return -1;
}
+ if (func->type == ZEND_INTERNAL_FUNCTION
+ && (func->op_array.fn_flags & (ZEND_ACC_CLOSURE|ZEND_ACC_FAKE_CLOSURE))) {
+ return -1;
+ }
if (func->type == ZEND_USER_FUNCTION
&& (func->op_array.fn_flags & ZEND_ACC_CLOSURE)) {
jit_extension =
break;
}
if (EX(call)->func->type == ZEND_INTERNAL_FUNCTION) {
+ if (EX(call)->func->op_array.fn_flags & (ZEND_ACC_CLOSURE|ZEND_ACC_FAKE_CLOSURE)) {
+ stop = ZEND_JIT_TRACE_STOP_BAD_FUNC;
+ break;
+ }
TRACE_RECORD(ZEND_JIT_TRACE_DO_ICALL, 0, EX(call)->func);
}
} else if (opline->opcode == ZEND_INCLUDE_OR_EVAL) {
break;
}
func = EX(call)->func;
+ if (func->type == ZEND_INTERNAL_FUNCTION
+ && (func->op_array.fn_flags & (ZEND_ACC_CLOSURE|ZEND_ACC_FAKE_CLOSURE))) {
+ stop = ZEND_JIT_TRACE_STOP_BAD_FUNC;
+ break;
+ }
if (func->type == ZEND_USER_FUNCTION
&& (func->op_array.fn_flags & ZEND_ACC_CLOSURE)) {
jit_extension =