diff options
Diffstat (limited to '')
| -rw-r--r-- | lparser.c | 12 |
1 files changed, 7 insertions, 5 deletions
| @@ -1,5 +1,5 @@ | |||
| 1 | /* | 1 | /* |
| 2 | ** $Id: lparser.c,v 1.211 2003/05/14 21:02:39 roberto Exp roberto $ | 2 | ** $Id: lparser.c,v 1.212 2003/07/09 15:36:38 roberto Exp roberto $ |
| 3 | ** Lua Parser | 3 | ** Lua Parser |
| 4 | ** See Copyright Notice in lua.h | 4 | ** See Copyright Notice in lua.h |
| 5 | */ | 5 | */ |
| @@ -139,7 +139,7 @@ static int luaI_registerlocalvar (LexState *ls, TString *varname) { | |||
| 139 | FuncState *fs = ls->fs; | 139 | FuncState *fs = ls->fs; |
| 140 | Proto *f = fs->f; | 140 | Proto *f = fs->f; |
| 141 | luaM_growvector(ls->L, f->locvars, fs->nlocvars, f->sizelocvars, | 141 | luaM_growvector(ls->L, f->locvars, fs->nlocvars, f->sizelocvars, |
| 142 | LocVar, MAX_INT, ""); | 142 | LocVar, USHRT_MAX, "too many local variables"); |
| 143 | f->locvars[fs->nlocvars].varname = varname; | 143 | f->locvars[fs->nlocvars].varname = varname; |
| 144 | return fs->nlocvars++; | 144 | return fs->nlocvars++; |
| 145 | } | 145 | } |
| @@ -148,7 +148,8 @@ static int luaI_registerlocalvar (LexState *ls, TString *varname) { | |||
| 148 | static void new_localvar (LexState *ls, TString *name, int n) { | 148 | static void new_localvar (LexState *ls, TString *name, int n) { |
| 149 | FuncState *fs = ls->fs; | 149 | FuncState *fs = ls->fs; |
| 150 | luaX_checklimit(ls, fs->nactvar+n+1, MAXVARS, "local variables"); | 150 | luaX_checklimit(ls, fs->nactvar+n+1, MAXVARS, "local variables"); |
| 151 | fs->actvar[fs->nactvar+n] = luaI_registerlocalvar(ls, name); | 151 | fs->actvar[fs->nactvar+n] = cast(unsigned short, |
| 152 | luaI_registerlocalvar(ls, name)); | ||
| 152 | } | 153 | } |
| 153 | 154 | ||
| 154 | 155 | ||
| @@ -187,8 +188,9 @@ static int indexupvalue (FuncState *fs, TString *name, expdesc *v) { | |||
| 187 | luaM_growvector(fs->L, fs->f->upvalues, f->nups, fs->f->sizeupvalues, | 188 | luaM_growvector(fs->L, fs->f->upvalues, f->nups, fs->f->sizeupvalues, |
| 188 | TString *, MAX_INT, ""); | 189 | TString *, MAX_INT, ""); |
| 189 | fs->f->upvalues[f->nups] = name; | 190 | fs->f->upvalues[f->nups] = name; |
| 190 | fs->upvalues[f->nups].k = v->k; | 191 | lua_assert(v->k == VLOCAL || v->k == VUPVAL); |
| 191 | fs->upvalues[f->nups].info = v->info; | 192 | fs->upvalues[f->nups].k = cast(lu_byte, v->k); |
| 193 | fs->upvalues[f->nups].info = cast(lu_byte, v->info); | ||
| 192 | return f->nups++; | 194 | return f->nups++; |
| 193 | } | 195 | } |
| 194 | 196 | ||
