diff options
Diffstat (limited to 'lparser.c')
-rw-r--r-- | lparser.c | 4 |
1 files changed, 2 insertions, 2 deletions
@@ -1580,7 +1580,6 @@ static void fornum (LexState *ls, TString *varname, int line) { | |||
1580 | int base = fs->freereg; | 1580 | int base = fs->freereg; |
1581 | new_localvarliteral(ls, "(for state)"); | 1581 | new_localvarliteral(ls, "(for state)"); |
1582 | new_localvarliteral(ls, "(for state)"); | 1582 | new_localvarliteral(ls, "(for state)"); |
1583 | new_localvarliteral(ls, "(for state)"); | ||
1584 | new_localvarkind(ls, varname, RDKCONST); /* control variable */ | 1583 | new_localvarkind(ls, varname, RDKCONST); /* control variable */ |
1585 | checknext(ls, '='); | 1584 | checknext(ls, '='); |
1586 | exp1(ls); /* initial value */ | 1585 | exp1(ls); /* initial value */ |
@@ -1592,7 +1591,8 @@ static void fornum (LexState *ls, TString *varname, int line) { | |||
1592 | luaK_int(fs, fs->freereg, 1); | 1591 | luaK_int(fs, fs->freereg, 1); |
1593 | luaK_reserveregs(fs, 1); | 1592 | luaK_reserveregs(fs, 1); |
1594 | } | 1593 | } |
1595 | adjustlocalvars(ls, 3); /* control variables */ | 1594 | adjustlocalvars(ls, 2); /* start scope for internal state variables */ |
1595 | fs->freereg--; /* OP_FORPREP removes one register from the stack */ | ||
1596 | forbody(ls, base, line, 1, 0); | 1596 | forbody(ls, base, line, 1, 0); |
1597 | } | 1597 | } |
1598 | 1598 | ||