** Create a new local variable with the given 'name'. Return its index ** in the function. */
| 191 | ** in the function. |
| 192 | */ |
| 193 | static int new_localvar (LexState *ls, TString *name) { |
| 194 | lua_State *L = ls->L; |
| 195 | FuncState *fs = ls->fs; |
| 196 | Dyndata *dyd = ls->dyd; |
| 197 | Vardesc *var; |
| 198 | checklimit(fs, dyd->actvar.n + 1 - fs->firstlocal, |
| 199 | MAXVARS, "local variables"); |
| 200 | luaM_growvector(L, dyd->actvar.arr, dyd->actvar.n + 1, |
| 201 | dyd->actvar.size, Vardesc, USHRT_MAX, "local variables"); |
| 202 | var = &dyd->actvar.arr[dyd->actvar.n++]; |
| 203 | var->vd.kind = VDKREG; /* default */ |
| 204 | var->vd.name = name; |
| 205 | return dyd->actvar.n - 1 - fs->firstlocal; |
| 206 | } |
| 207 | |
| 208 | #define new_localvarliteral(ls,v) \ |
| 209 | new_localvar(ls, \ |