| 551 | |
| 552 | |
| 553 | static void close_func (LexState *ls) { |
| 554 | lua_State *L = ls->L; |
| 555 | FuncState *fs = ls->fs; |
| 556 | Proto *f = fs->f; |
| 557 | luaK_ret(fs, 0, 0); /* final return */ |
| 558 | leaveblock(fs); |
| 559 | luaM_reallocvector(L, f->code, f->sizecode, fs->pc, Instruction); |
| 560 | f->sizecode = fs->pc; |
| 561 | luaM_reallocvector(L, f->lineinfo, f->sizelineinfo, fs->pc, int); |
| 562 | f->sizelineinfo = fs->pc; |
| 563 | luaM_reallocvector(L, f->k, f->sizek, fs->nk, TValue); |
| 564 | f->sizek = fs->nk; |
| 565 | luaM_reallocvector(L, f->p, f->sizep, fs->np, Proto *); |
| 566 | f->sizep = fs->np; |
| 567 | luaM_reallocvector(L, f->locvars, f->sizelocvars, fs->nlocvars, LocVar); |
| 568 | f->sizelocvars = fs->nlocvars; |
| 569 | luaM_reallocvector(L, f->upvalues, f->sizeupvalues, fs->nups, Upvaldesc); |
| 570 | f->sizeupvalues = fs->nups; |
| 571 | lua_assert(fs->bl == NULL); |
| 572 | ls->fs = fs->prev; |
| 573 | luaC_checkGC(L); |
| 574 | } |
| 575 | |
| 576 | |
| 577 |
no test coverage detected