| 161 | |
| 162 | |
| 163 | static int registerlocalvar (LexState *ls, TString *varname) { |
| 164 | FuncState *fs = ls->fs; |
| 165 | Proto *f = fs->f; |
| 166 | int oldsize = f->sizelocvars; |
| 167 | luaM_growvector(ls->L, f->locvars, fs->nlocvars, f->sizelocvars, |
| 168 | LocVar, SHRT_MAX, "local variables"); |
| 169 | while (oldsize < f->sizelocvars) f->locvars[oldsize++].varname = NULL; |
| 170 | f->locvars[fs->nlocvars].varname = varname; |
| 171 | luaC_objbarrier(ls->L, f, varname); |
| 172 | return fs->nlocvars++; |
| 173 | } |
| 174 | |
| 175 | |
| 176 | static void new_localvar (LexState *ls, TString *name) { |