aboutsummaryrefslogtreecommitdiff
path: root/src/lj_record.c
diff options
context:
space:
mode:
authorMike Pall <mike>2022-05-20 11:54:20 +0200
committerMike Pall <mike>2022-05-20 11:54:20 +0200
commit80bb1428aad72d870af9969c30c9c39b174b5a59 (patch)
tree4a58fa86f02792a2a20e9aaac3d370a05c9e9dec /src/lj_record.c
parent91bc6b8ad1f373c1ce9003dc024b2e21fad0e444 (diff)
downloadluajit-80bb1428aad72d870af9969c30c9c39b174b5a59.tar.gz
luajit-80bb1428aad72d870af9969c30c9c39b174b5a59.tar.bz2
luajit-80bb1428aad72d870af9969c30c9c39b174b5a59.zip
Fix loop initialization in table.foreach().
Reported by Daniel Steinberg.
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 b92db957..533f4995 100644
--- a/src/lj_record.c
+++ b/src/lj_record.c
@@ -2233,6 +2233,7 @@ void lj_record_ins(jit_State *J)
2233 case BCMpri: setpriV(rcv, ~rc); ix.key = rc = TREF_PRI(IRT_NIL+rc); break; 2233 case BCMpri: setpriV(rcv, ~rc); ix.key = rc = TREF_PRI(IRT_NIL+rc); break;
2234 case BCMnum: { cTValue *tv = proto_knumtv(J->pt, rc); 2234 case BCMnum: { cTValue *tv = proto_knumtv(J->pt, rc);
2235 copyTV(J->L, rcv, tv); ix.key = rc = tvisint(tv) ? lj_ir_kint(J, intV(tv)) : 2235 copyTV(J->L, rcv, tv); ix.key = rc = tvisint(tv) ? lj_ir_kint(J, intV(tv)) :
2236 tv->u32.hi == LJ_KEYINDEX ? (lj_ir_kint(J, 0) | TREF_KEYINDEX) :
2236 lj_ir_knumint(J, numV(tv)); } break; 2237 lj_ir_knumint(J, numV(tv)); } break;
2237 case BCMstr: { GCstr *s = gco2str(proto_kgc(J->pt, ~(ptrdiff_t)rc)); 2238 case BCMstr: { GCstr *s = gco2str(proto_kgc(J->pt, ~(ptrdiff_t)rc));
2238 setstrV(J->L, rcv, s); ix.key = rc = lj_ir_kstr(J, s); } break; 2239 setstrV(J->L, rcv, s); ix.key = rc = lj_ir_kstr(J, s); } break;