From a8e8c40ad487fd6614c4aec41d3cc82b2dc74bff Mon Sep 17 00:00:00 2001 From: Dmitry Stogov Date: Tue, 17 Mar 2020 18:10:27 +0300 Subject: [PATCH] Use zend_fetch_arg_info_type() --- ext/opcache/jit/zend_jit_trace.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/ext/opcache/jit/zend_jit_trace.c b/ext/opcache/jit/zend_jit_trace.c index 0990069de3..c472e49213 100644 --- a/ext/opcache/jit/zend_jit_trace.c +++ b/ext/opcache/jit/zend_jit_trace.c @@ -1287,7 +1287,9 @@ static zend_ssa *zend_jit_trace_build_tssa(zend_jit_trace_rec *trace_buffer, uin ZEND_ASSERT(frame->call->func->op_array.arg_info); arg_info = &frame->call->func->op_array.arg_info[opline->op2.num - 1]; if (ZEND_TYPE_IS_SET(arg_info->type)) { - info &= ZEND_TYPE_FULL_MASK(arg_info->type); + zend_class_entry *ce; + uint32_t tmp = zend_fetch_arg_info_type(script, arg_info, &ce); + info &= tmp; if (!info) { break; } @@ -1470,6 +1472,8 @@ static zend_ssa *zend_jit_trace_build_tssa(zend_jit_trace_rec *trace_buffer, uin tmp |= MAY_BE_REF; } ssa_var_info[v].type = tmp; + ssa_var_info[i].ce = ce; + ssa_var_info[i].is_instanceof = 1; } else { ssa_var_info[v].type = MAY_BE_RC1 | MAY_BE_RCN | MAY_BE_REF | MAY_BE_ANY | MAY_BE_ARRAY_KEY_ANY | MAY_BE_ARRAY_OF_ANY | MAY_BE_ARRAY_OF_REF; } -- 2.40.0