MCPcopy Create free account
hub / github.com/EmmyLua/EmmyLuaDebugger / close_func

Function close_func

third-party/lua-5.5.0/src/lparser.c:830–849  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

828
829
830static void close_func (LexState *ls) {
831 lua_State *L = ls->L;
832 FuncState *fs = ls->fs;
833 Proto *f = fs->f;
834 luaK_ret(fs, luaY_nvarstack(fs), 0); /* final return */
835 leaveblock(fs);
836 lua_assert(fs->bl == NULL);
837 luaK_finish(fs);
838 luaM_shrinkvector(L, f->code, f->sizecode, fs->pc, Instruction);
839 luaM_shrinkvector(L, f->lineinfo, f->sizelineinfo, fs->pc, ls_byte);
840 luaM_shrinkvector(L, f->abslineinfo, f->sizeabslineinfo,
841 fs->nabslineinfo, AbsLineInfo);
842 luaM_shrinkvector(L, f->k, f->sizek, fs->nk, TValue);
843 luaM_shrinkvector(L, f->p, f->sizep, fs->np, Proto *);
844 luaM_shrinkvector(L, f->locvars, f->sizelocvars, fs->ndebugvars, LocVar);
845 luaM_shrinkvector(L, f->upvalues, f->sizeupvalues, fs->nups, Upvaldesc);
846 ls->fs = fs->prev;
847 L->top.p--; /* pop kcache table */
848 luaC_checkGC(L);
849}
850
851
852/*

Callers 2

bodyFunction · 0.70
mainfuncFunction · 0.70

Calls 4

luaK_retFunction · 0.70
luaY_nvarstackFunction · 0.70
leaveblockFunction · 0.70
luaK_finishFunction · 0.70

Tested by

no test coverage detected