summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Pall <mike>2013-09-13 00:33:58 +0200
committerMike Pall <mike>2013-09-13 00:33:58 +0200
commitf1e7a4477ca4a5a8ef8c64135d9093d02451bb22 (patch)
tree04ee05ae53e6552f1ba7ef851639c6d365ff3221
parent1f7b32621700a7c104435a64d6cad5374cb8b9b7 (diff)
downloadluajit-f1e7a4477ca4a5a8ef8c64135d9093d02451bb22.tar.gz
luajit-f1e7a4477ca4a5a8ef8c64135d9093d02451bb22.tar.bz2
luajit-f1e7a4477ca4a5a8ef8c64135d9093d02451bb22.zip
Fix snapshot restore for exit to function header.
-rw-r--r--src/lj_snap.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/src/lj_snap.c b/src/lj_snap.c
index 30ff9152..a25e4601 100644
--- a/src/lj_snap.c
+++ b/src/lj_snap.c
@@ -845,12 +845,15 @@ const BCIns *lj_snap_restore(jit_State *J, void *exptr)
845 845
846 /* Compute current stack top. */ 846 /* Compute current stack top. */
847 switch (bc_op(*pc)) { 847 switch (bc_op(*pc)) {
848 default:
849 if (bc_op(*pc) < BC_FUNCF) {
850 L->top = curr_topL(L);
851 break;
852 }
853 /* fallthrough */
848 case BC_CALLM: case BC_CALLMT: case BC_RETM: case BC_TSETM: 854 case BC_CALLM: case BC_CALLMT: case BC_RETM: case BC_TSETM:
849 L->top = frame + snap->nslots; 855 L->top = frame + snap->nslots;
850 break; 856 break;
851 default:
852 L->top = curr_topL(L);
853 break;
854 } 857 }
855 return pc; 858 return pc;
856} 859}