aboutsummaryrefslogtreecommitdiff
path: root/lcode.c
diff options
context:
space:
mode:
authorRoberto Ierusalimschy <roberto@inf.puc-rio.br>2025-10-30 10:39:55 -0300
committerRoberto Ierusalimschy <roberto@inf.puc-rio.br>2025-10-30 10:39:55 -0300
commit0149b781d438091ce086449101a916e9b4456b4e (patch)
treec57e788c302ecf257614c9c19b48336e54522a2d /lcode.c
parentd4eff00234dc55dac4cb86b6187f5607c1254f9b (diff)
downloadlua-0149b781d438091ce086449101a916e9b4456b4e.tar.gz
lua-0149b781d438091ce086449101a916e9b4456b4e.tar.bz2
lua-0149b781d438091ce086449101a916e9b4456b4e.zip
Case VVARGIND added to luaK_storevar
In a global initialization, the variable does not pass through 'check_readonly', and therefore a VVARGIND is not normalized to a VINDEXED.
Diffstat (limited to 'lcode.c')
-rw-r--r--lcode.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/lcode.c b/lcode.c
index 7c63abb2..f09edb5f 100644
--- a/lcode.c
+++ b/lcode.c
@@ -1109,6 +1109,10 @@ void luaK_storevar (FuncState *fs, expdesc *var, expdesc *ex) {
1109 codeABRK(fs, OP_SETFIELD, var->u.ind.t, var->u.ind.idx, ex); 1109 codeABRK(fs, OP_SETFIELD, var->u.ind.t, var->u.ind.idx, ex);
1110 break; 1110 break;
1111 } 1111 }
1112 case VVARGIND: {
1113 fs->f->flag |= PF_VATAB; /* function will need a vararg table */
1114 /* now, assignment is to a regular table */
1115 } /* FALLTHROUGH */
1112 case VINDEXED: { 1116 case VINDEXED: {
1113 codeABRK(fs, OP_SETTABLE, var->u.ind.t, var->u.ind.idx, ex); 1117 codeABRK(fs, OP_SETTABLE, var->u.ind.t, var->u.ind.idx, ex);
1114 break; 1118 break;