diff options
Diffstat (limited to 'src/lj_snap.c')
-rw-r--r-- | src/lj_snap.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/src/lj_snap.c b/src/lj_snap.c index 86890a26..fe0389fe 100644 --- a/src/lj_snap.c +++ b/src/lj_snap.c | |||
@@ -309,7 +309,14 @@ const BCIns *lj_snap_restore(jit_State *J, void *exptr) | |||
309 | } | 309 | } |
310 | } | 310 | } |
311 | } | 311 | } |
312 | L->top = curr_topL(L); | 312 | switch (bc_op(*pc)) { |
313 | case BC_CALLM: case BC_CALLMT: case BC_RETM: case BC_TSETM: | ||
314 | L->top = frame + nslots; | ||
315 | break; | ||
316 | default: | ||
317 | L->top = curr_topL(L); | ||
318 | break; | ||
319 | } | ||
313 | lua_assert(map + nent == flinks); | 320 | lua_assert(map + nent == flinks); |
314 | return pc; | 321 | return pc; |
315 | } | 322 | } |