diff options
author | Mike Pall <mike> | 2020-08-27 18:05:32 +0200 |
---|---|---|
committer | Mike Pall <mike> | 2020-08-27 18:05:32 +0200 |
commit | ff1e72acead01df7d8ed0fbb31efd32f57953618 (patch) | |
tree | e542edcd180a9684140013698f456a0c5d7da44f /src/lj_record.c | |
parent | 94d4abcca966df2cc423e821bcacd04898f73117 (diff) | |
download | luajit-ff1e72acead01df7d8ed0fbb31efd32f57953618.tar.gz luajit-ff1e72acead01df7d8ed0fbb31efd32f57953618.tar.bz2 luajit-ff1e72acead01df7d8ed0fbb31efd32f57953618.zip |
LJ_GC64: Always snapshot functions for non-base frames.
Reported by Arseny Vakhrushev.
Analysis and fix contributed by Peter Cawley.
Diffstat (limited to 'src/lj_record.c')
-rw-r--r-- | src/lj_record.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/src/lj_record.c b/src/lj_record.c index df428818..9e41ce05 100644 --- a/src/lj_record.c +++ b/src/lj_record.c | |||
@@ -211,6 +211,7 @@ static TRef getcurrf(jit_State *J) | |||
211 | { | 211 | { |
212 | if (J->base[-1-LJ_FR2]) | 212 | if (J->base[-1-LJ_FR2]) |
213 | return J->base[-1-LJ_FR2]; | 213 | return J->base[-1-LJ_FR2]; |
214 | /* Non-base frame functions ought to be loaded already. */ | ||
214 | lj_assertJ(J->baseslot == 1+LJ_FR2, "bad baseslot"); | 215 | lj_assertJ(J->baseslot == 1+LJ_FR2, "bad baseslot"); |
215 | return sloadt(J, -1-LJ_FR2, IRT_FUNC, IRSLOAD_READONLY); | 216 | return sloadt(J, -1-LJ_FR2, IRT_FUNC, IRSLOAD_READONLY); |
216 | } | 217 | } |