mirror of
https://github.com/LuaJIT/LuaJIT.git
synced 2025-02-07 23:24:09 +00:00
Clear frame gaps in recorder to avoid resurrecting previous refs.
This commit is contained in:
parent
4a7ee2cb66
commit
00ad80c9e4
@ -600,7 +600,7 @@ static BCReg rec_mm_prep(jit_State *J, ASMFunction cont)
|
|||||||
#endif
|
#endif
|
||||||
J->base[top] = trcont | TREF_CONT;
|
J->base[top] = trcont | TREF_CONT;
|
||||||
for (s = J->maxslot; s < top; s++)
|
for (s = J->maxslot; s < top; s++)
|
||||||
J->base[s] = TREF_NIL;
|
J->base[s] = 0; /* Clear frame gap to avoid resurrecting previous refs. */
|
||||||
return top+1;
|
return top+1;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1982,7 +1982,11 @@ void lj_record_ins(jit_State *J)
|
|||||||
|
|
||||||
/* -- Constant and move ops --------------------------------------------- */
|
/* -- Constant and move ops --------------------------------------------- */
|
||||||
|
|
||||||
case BC_KSTR: case BC_KNUM: case BC_KPRI: case BC_MOV:
|
case BC_MOV:
|
||||||
|
/* Clear gap of method call to avoid resurrecting previous refs. */
|
||||||
|
if (ra > J->maxslot) J->base[ra-1] = 0;
|
||||||
|
break;
|
||||||
|
case BC_KSTR: case BC_KNUM: case BC_KPRI:
|
||||||
break;
|
break;
|
||||||
case BC_KSHORT:
|
case BC_KSHORT:
|
||||||
rc = lj_ir_kint(J, (int32_t)(int16_t)rc);
|
rc = lj_ir_kint(J, (int32_t)(int16_t)rc);
|
||||||
|
Loading…
Reference in New Issue
Block a user