diff options
author | Mike Pall <mike> | 2010-03-13 17:45:09 +0100 |
---|---|---|
committer | Mike Pall <mike> | 2010-03-13 17:45:09 +0100 |
commit | 16f33422f14573d23522bc4e69cc6219e36f63e9 (patch) | |
tree | 5bc71712d294c856ca32e0c707a5fb61ad375cc9 /src/lj_snap.c | |
parent | 4f19a15bd9dfbd4e5c3ffc6a70b72449fb79a7ee (diff) | |
download | luajit-16f33422f14573d23522bc4e69cc6219e36f63e9.tar.gz luajit-16f33422f14573d23522bc4e69cc6219e36f63e9.tar.bz2 luajit-16f33422f14573d23522bc4e69cc6219e36f63e9.zip |
Restore MULTRES for snapshots pointing to CALLM etc. bytecodes.
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 | } |