diff options
author | Mike Pall <mike> | 2014-02-20 04:24:50 +0100 |
---|---|---|
committer | Mike Pall <mike> | 2014-02-20 04:24:50 +0100 |
commit | 998651fcdafc8b6f3d922e1e60864fec83409118 (patch) | |
tree | 2e11b404aaf77a93f1087fbcfba77c42560eae11 | |
parent | 1994a2453e91beafcc78e12051b44ccc7a41bf7b (diff) | |
download | luajit-998651fcdafc8b6f3d922e1e60864fec83409118.tar.gz luajit-998651fcdafc8b6f3d922e1e60864fec83409118.tar.bz2 luajit-998651fcdafc8b6f3d922e1e60864fec83409118.zip |
Don't purge modified function from stack slots in BC_RET.
-rw-r--r-- | src/lj_record.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/lj_record.c b/src/lj_record.c index f98b0a4c..0dfc10b3 100644 --- a/src/lj_record.c +++ b/src/lj_record.c | |||
@@ -701,7 +701,7 @@ void lj_record_ret(jit_State *J, BCReg rbase, ptrdiff_t gotresults) | |||
701 | (!frame_islua(frame) || | 701 | (!frame_islua(frame) || |
702 | (J->parent == 0 && !bc_isret(bc_op(J->cur.startins))))) { | 702 | (J->parent == 0 && !bc_isret(bc_op(J->cur.startins))))) { |
703 | /* NYI: specialize to frame type and return directly, not via RET*. */ | 703 | /* NYI: specialize to frame type and return directly, not via RET*. */ |
704 | for (i = -1; i < (ptrdiff_t)rbase; i++) | 704 | for (i = 0; i < (ptrdiff_t)rbase; i++) |
705 | J->base[i] = 0; /* Purge dead slots. */ | 705 | J->base[i] = 0; /* Purge dead slots. */ |
706 | J->maxslot = rbase + (BCReg)gotresults; | 706 | J->maxslot = rbase + (BCReg)gotresults; |
707 | rec_stop(J, LJ_TRLINK_RETURN, 0); /* Return to interpreter. */ | 707 | rec_stop(J, LJ_TRLINK_RETURN, 0); /* Return to interpreter. */ |