diff options
author | Mike Pall <mike> | 2016-06-03 04:26:08 +0200 |
---|---|---|
committer | Mike Pall <mike> | 2016-06-03 04:26:08 +0200 |
commit | a5f8a4819f21ddb9aa0fb4ddd3c221d4512968e9 (patch) | |
tree | c63bfdf74c132225a177a5f3b4c065119c9341b0 /src | |
parent | 747feb6e4ef2a8147e18a92e76b9befa8de8a7b5 (diff) | |
download | luajit-a5f8a4819f21ddb9aa0fb4ddd3c221d4512968e9.tar.gz luajit-a5f8a4819f21ddb9aa0fb4ddd3c221d4512968e9.tar.bz2 luajit-a5f8a4819f21ddb9aa0fb4ddd3c221d4512968e9.zip |
Don't try to record outermost pcall() return to lower frame.
Diffstat (limited to 'src')
-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 44b3667f..3f76c92a 100644 --- a/src/lj_record.c +++ b/src/lj_record.c | |||
@@ -687,7 +687,7 @@ void lj_record_ret(jit_State *J, BCReg rbase, ptrdiff_t gotresults) | |||
687 | (void)getslot(J, rbase+i); /* Ensure all results have a reference. */ | 687 | (void)getslot(J, rbase+i); /* Ensure all results have a reference. */ |
688 | while (frame_ispcall(frame)) { /* Immediately resolve pcall() returns. */ | 688 | while (frame_ispcall(frame)) { /* Immediately resolve pcall() returns. */ |
689 | BCReg cbase = (BCReg)frame_delta(frame); | 689 | BCReg cbase = (BCReg)frame_delta(frame); |
690 | if (--J->framedepth < 0) | 690 | if (--J->framedepth <= 0) |
691 | lj_trace_err(J, LJ_TRERR_NYIRETL); | 691 | lj_trace_err(J, LJ_TRERR_NYIRETL); |
692 | lua_assert(J->baseslot > 1); | 692 | lua_assert(J->baseslot > 1); |
693 | gotresults++; | 693 | gotresults++; |