From: Dmitry Stogov Date: Thu, 9 Apr 2020 10:38:40 +0000 (+0300) Subject: Don't get number of passed arguments from "fake" INIT frames X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=ba64b3fd4126e4b6f89afd6d8a5643382ea0f27b;p=php Don't get number of passed arguments from "fake" INIT frames --- diff --git a/ext/opcache/jit/zend_jit_trace.c b/ext/opcache/jit/zend_jit_trace.c index 65b5890021..6a05bc0d74 100644 --- a/ext/opcache/jit/zend_jit_trace.c +++ b/ext/opcache/jit/zend_jit_trace.c @@ -3014,7 +3014,7 @@ done: break; } else if (p->op == ZEND_JIT_TRACE_INIT_CALL) { call = top; - TRACE_FRAME_INIT(call, p->func, 1, find_call_num_args(p-1)); + TRACE_FRAME_INIT(call, p->func, 1, !p->fake ? find_call_num_args(p-1) : -1); call->prev = frame->call; if (!p->fake) { TRACE_FRAME_SET_LAST_SEND_BY_VAL(call);