aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lparser.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/lparser.c b/lparser.c
index bdc5e76e..2bd65ee3 100644
--- a/lparser.c
+++ b/lparser.c
@@ -1,5 +1,5 @@
1/* 1/*
2** $Id: lparser.c,v 1.19 1999/02/09 15:59:10 roberto Exp roberto $ 2** $Id: lparser.c,v 1.20 1999/02/09 18:01:55 roberto Exp roberto $
3** LL(1) Parser and code generator for Lua 3** LL(1) Parser and code generator for Lua
4** See Copyright Notice in lua.h 4** See Copyright Notice in lua.h
5*/ 5*/
@@ -135,7 +135,7 @@ static void var_or_func_tail (LexState *ls, vardesc *v);
135 135
136static void check_pc (FuncState *fs, int n) { 136static void check_pc (FuncState *fs, int n) {
137 if (fs->pc+n > fs->maxcode) 137 if (fs->pc+n > fs->maxcode)
138 fs->maxcode = luaM_growvector(&fs->f->code, fs->maxcode, 138 fs->maxcode = luaM_growvector(&fs->f->code, fs->maxcode+n,
139 Byte, codeEM, MAX_INT); 139 Byte, codeEM, MAX_INT);
140} 140}
141 141
@@ -295,8 +295,8 @@ static void luaI_registerlocalvar (FuncState *fs, TaggedString *varname,
295 int line) { 295 int line) {
296 if (fs->maxvars != -1) { /* debug information? */ 296 if (fs->maxvars != -1) { /* debug information? */
297 TProtoFunc *f = fs->f; 297 TProtoFunc *f = fs->f;
298 if (fs->nvars+1 > fs->maxvars) 298 if (fs->nvars >= fs->maxvars)
299 fs->maxvars = luaM_growvector(&f->locvars, fs->maxvars+1, 299 fs->maxvars = luaM_growvector(&f->locvars, fs->maxvars,
300 LocVar, "", MAX_INT); 300 LocVar, "", MAX_INT);
301 f->locvars[fs->nvars].varname = varname; 301 f->locvars[fs->nvars].varname = varname;
302 f->locvars[fs->nvars].line = line; 302 f->locvars[fs->nvars].line = line;
@@ -398,7 +398,7 @@ static void adjuststack (LexState *ls, int n) {
398static void close_exp (LexState *ls, int pc, int nresults) { 398static void close_exp (LexState *ls, int pc, int nresults) {
399 if (pc > 0) { /* expression is an open function call */ 399 if (pc > 0) { /* expression is an open function call */
400 Byte *code = ls->fs->f->code; 400 Byte *code = ls->fs->f->code;
401 code[pc-1] = nresults; /* set nresults */ 401 code[pc-1] = (Byte)nresults; /* set nresults */
402 if (nresults != MULT_RET) 402 if (nresults != MULT_RET)
403 deltastack(ls, nresults); /* push results */ 403 deltastack(ls, nresults); /* push results */
404 deltastack(ls, -(code[pc]+1)); /* pop params (at code[pc]) and function */ 404 deltastack(ls, -(code[pc]+1)); /* pop params (at code[pc]) and function */