diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/lj_record.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/src/lj_record.c b/src/lj_record.c index 8e685a10..57642eb5 100644 --- a/src/lj_record.c +++ b/src/lj_record.c | |||
| @@ -116,6 +116,7 @@ static void rec_check_slots(jit_State *J) | |||
| 116 | cTValue *tv = &base[s]; | 116 | cTValue *tv = &base[s]; |
| 117 | IRRef ref = tref_ref(tr); | 117 | IRRef ref = tref_ref(tr); |
| 118 | IRIns *ir = NULL; /* Silence compiler. */ | 118 | IRIns *ir = NULL; /* Silence compiler. */ |
| 119 | lj_assertJ(tv < J->L->top, "slot %d above top of Lua stack", s); | ||
| 119 | if (!LJ_FR2 || ref || !(tr & (TREF_FRAME | TREF_CONT))) { | 120 | if (!LJ_FR2 || ref || !(tr & (TREF_FRAME | TREF_CONT))) { |
| 120 | lj_assertJ(ref >= J->cur.nk && ref < J->cur.nins, | 121 | lj_assertJ(ref >= J->cur.nk && ref < J->cur.nins, |
| 121 | "slot %d ref %04d out of range", s, ref - REF_BIAS); | 122 | "slot %d ref %04d out of range", s, ref - REF_BIAS); |
| @@ -2476,6 +2477,7 @@ void lj_record_ins(jit_State *J) | |||
| 2476 | 2477 | ||
| 2477 | case BC_TSETM: | 2478 | case BC_TSETM: |
| 2478 | rec_tsetm(J, ra, (BCReg)(J->L->top - J->L->base), (int32_t)rcv->u32.lo); | 2479 | rec_tsetm(J, ra, (BCReg)(J->L->top - J->L->base), (int32_t)rcv->u32.lo); |
| 2480 | J->maxslot = ra; /* The table slot at ra-1 is the highest used slot. */ | ||
| 2479 | break; | 2481 | break; |
| 2480 | 2482 | ||
| 2481 | case BC_TNEW: | 2483 | case BC_TNEW: |
