aboutsummaryrefslogtreecommitdiff
path: root/src/lj_opt_fold.c
diff options
context:
space:
mode:
authorMike Pall <mike>2025-03-11 23:04:30 +0100
committerMike Pall <mike>2025-03-11 23:04:30 +0100
commit538a82133ad6fddfd0ca64de167c4aca3bc1a2da (patch)
tree22fd80543291b6b51ba9a6f841719bab7ed7b3bd /src/lj_opt_fold.c
parent84cb21ffaf648b472ff3884556e2c413e8abe179 (diff)
downloadluajit-v2.1.tar.gz
luajit-v2.1.tar.bz2
luajit-v2.1.zip
Change handling of nil value markers in template tables.HEADv2.1
Reported by Bernhard M. Wiedemann. #1348 #1155 Fixes from Peter Cawley, Christian Clason, Lewis Russell.
Diffstat (limited to 'src/lj_opt_fold.c')
-rw-r--r--src/lj_opt_fold.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/lj_opt_fold.c b/src/lj_opt_fold.c
index 36aacebb..6fdf4566 100644
--- a/src/lj_opt_fold.c
+++ b/src/lj_opt_fold.c
@@ -2217,9 +2217,11 @@ LJFOLD(HREF TDUP KNUM)
2217LJFOLDF(fwd_href_tdup) 2217LJFOLDF(fwd_href_tdup)
2218{ 2218{
2219 TValue keyv; 2219 TValue keyv;
2220 cTValue *val;
2220 lj_ir_kvalue(J->L, &keyv, fright); 2221 lj_ir_kvalue(J->L, &keyv, fright);
2221 if (lj_tab_get(J->L, ir_ktab(IR(fleft->op1)), &keyv) == niltvg(J2G(J)) && 2222 val = lj_tab_get(J->L, ir_ktab(IR(fleft->op1)), &keyv);
2222 lj_opt_fwd_href_nokey(J)) 2223 /* Check for either nil or the nil value marker in the template table. */
2224 if ((tvisnil(val) || tvistab(val)) && lj_opt_fwd_href_nokey(J))
2223 return lj_ir_kkptr(J, niltvg(J2G(J))); 2225 return lj_ir_kkptr(J, niltvg(J2G(J)));
2224 return NEXTFOLD; 2226 return NEXTFOLD;
2225} 2227}