diff --git a/src/jit/dump.lua b/src/jit/dump.lua index be6a3bcb..c9016ce5 100644 --- a/src/jit/dump.lua +++ b/src/jit/dump.lua @@ -554,10 +554,8 @@ local function dump_trace(what, tr, func, pc, otr, oex) out:write("---- TRACE ", tr, " ", what) if otr then out:write(" ", otr, "/", oex) end out:write(" ", fmtfunc(func, pc), "\n") - recprefix = "" elseif what == "stop" or what == "abort" then out:write("---- TRACE ", tr, " ", what) - recprefix = nil if what == "abort" then out:write(" ", fmtfunc(func, pc), " -- ", fmterr(otr, oex), "\n") else diff --git a/src/lj_record.c b/src/lj_record.c index 5bd2d5db..9a3e3375 100644 --- a/src/lj_record.c +++ b/src/lj_record.c @@ -1603,10 +1603,8 @@ static void rec_varg(jit_State *J, BCReg dst, ptrdiff_t nresults) } else if (dst + nresults > J->maxslot) { J->maxslot = dst + (BCReg)nresults; } - for (i = 0; i < nresults; i++) { - J->base[dst+i] = i < nvararg ? J->base[i - nvararg - 1] : TREF_NIL; - lua_assert(J->base[dst+i] != 0); - } + for (i = 0; i < nresults; i++) + J->base[dst+i] = i < nvararg ? getslot(J, i - nvararg - 1) : TREF_NIL; } else { /* Unknown number of varargs passed to trace. */ TRef fr = emitir(IRTI(IR_SLOAD), 0, IRSLOAD_READONLY|IRSLOAD_FRAME); int32_t frofs = 8*(1+numparams)+FRAME_VARG;