| 250 | |
| 251 | |
| 252 | static int newupvalue(FuncState *fs, TString *name, expdesc *v) { |
| 253 | Proto *f = fs->f; |
| 254 | int oldsize = f->sizeupvalues; |
| 255 | checklimit(fs, fs->nups + 1, MAXUPVAL, "upvalues"); |
| 256 | luaM_growvector(fs->ls->L, f->upvalues, fs->nups, f->sizeupvalues, |
| 257 | Upvaldesc, MAXUPVAL, "upvalues"); |
| 258 | while (oldsize < f->sizeupvalues) f->upvalues[oldsize++].name = nullptr; |
| 259 | f->upvalues[fs->nups].instack = (v->k == VLOCAL); |
| 260 | f->upvalues[fs->nups].idx = cast_byte(v->u.info); |
| 261 | f->upvalues[fs->nups].name = name; |
| 262 | luaC_objbarrier(fs->ls->L, f, name); |
| 263 | return fs->nups++; |
| 264 | } |
| 265 | |
| 266 | |
| 267 | static int searchvar(FuncState *fs, TString *n) { |
no test coverage detected