aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Pall <mike>2023-07-08 19:40:12 +0200
committerMike Pall <mike>2023-07-08 19:40:12 +0200
commit94ada59628dd6ce5d6d2dad1d35a68ad30127f53 (patch)
treeebf67e67dcda7b884c58417742677093aaafe286
parentb7a8c7c184257858699454408420dd5f0b6c8a75 (diff)
downloadluajit-94ada59628dd6ce5d6d2dad1d35a68ad30127f53.tar.gz
luajit-94ada59628dd6ce5d6d2dad1d35a68ad30127f53.tar.bz2
luajit-94ada59628dd6ce5d6d2dad1d35a68ad30127f53.zip
Fix maxslots when recording BC_VARG.
Analyzed by Sergey Kaplun. #1024
-rw-r--r--src/lj_record.c3
1 files changed, 1 insertions, 2 deletions
diff --git a/src/lj_record.c b/src/lj_record.c
index 10a14a6f..c9933968 100644
--- a/src/lj_record.c
+++ b/src/lj_record.c
@@ -1556,8 +1556,7 @@ static void rec_varg(jit_State *J, BCReg dst, ptrdiff_t nresults)
1556 } 1556 }
1557 for (i = nvararg; i < nresults; i++) 1557 for (i = nvararg; i < nresults; i++)
1558 J->base[dst+i] = TREF_NIL; 1558 J->base[dst+i] = TREF_NIL;
1559 if (dst + (BCReg)nresults > J->maxslot) 1559 J->maxslot = dst + (BCReg)nresults;
1560 J->maxslot = dst + (BCReg)nresults;
1561 } else if (select_detect(J)) { /* y = select(x, ...) */ 1560 } else if (select_detect(J)) { /* y = select(x, ...) */
1562 TRef tridx = J->base[dst-1]; 1561 TRef tridx = J->base[dst-1];
1563 TRef tr = TREF_NIL; 1562 TRef tr = TREF_NIL;