From: Dmitry Stogov Date: Tue, 17 Mar 2020 15:10:27 +0000 (+0300) Subject: Use zend_fetch_arg_info_type() X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=a8e8c40ad487fd6614c4aec41d3cc82b2dc74bff;p=php Use zend_fetch_arg_info_type() --- 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; }