aboutsummaryrefslogtreecommitdiff
path: root/src/lj_record.c
diff options
context:
space:
mode:
authorMike Pall <mike>2020-08-27 18:05:32 +0200
committerMike Pall <mike>2020-08-27 18:05:32 +0200
commitff1e72acead01df7d8ed0fbb31efd32f57953618 (patch)
treee542edcd180a9684140013698f456a0c5d7da44f /src/lj_record.c
parent94d4abcca966df2cc423e821bcacd04898f73117 (diff)
downloadluajit-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.c1
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}