]> granicus.if.org Git - php/commitdiff
Don't get number of passed arguments from "fake" INIT frames
authorDmitry Stogov <dmitry@zend.com>
Thu, 9 Apr 2020 10:38:40 +0000 (13:38 +0300)
committerDmitry Stogov <dmitry@zend.com>
Thu, 9 Apr 2020 10:38:40 +0000 (13:38 +0300)
ext/opcache/jit/zend_jit_trace.c

index 65b5890021f95c06df67b1b199473886bffd1c0b..6a05bc0d74f7944859b985f4ee6ee49540874f98 100644 (file)
@@ -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);