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