static void freesharedproto (lua_State *L, SharedProto *f) { if (f == NULL || G(L) != f->l_G) return; luaM_freearray(L, f->code, f->sizecode); luaM_freearray(L, f->lineinfo, f->sizelineinfo); luaM_freearray(L, f->locvars, f->sizelocvars); luaM_freearray(L, f->upvalues, f->sizeupvalues); }
void luaF_freeproto (lua_State *L, Proto *f) { luaM_freearray(L, f->code, f->sizecode, Instruction); luaM_freearray(L, f->p, f->sizep, Proto *); luaM_freearray(L, f->k, f->sizek, TObject); luaM_freearray(L, f->lineinfo, f->sizelineinfo, int); luaM_freearray(L, f->locvars, f->sizelocvars, struct LocVar); luaM_freearray(L, f->upvalues, f->sizeupvalues, TString *); luaM_freelem(L, f); }
static void freestack (lua_State *L) { if (L->stack == NULL) return; /* stack not completely built yet */ L->ci = &L->base_ci; /* free the entire 'ci' list */ luaE_freeCI(L); luaM_freearray(L, L->stack, L->stacksize); /* free stack array */ }
static void close_state (lua_State *L) { global_State *g = G(L); luaF_close(L, L->stack); /* close all upvalues for this thread */ luaC_freeallobjects(L); /* collect all objects */ luaM_freearray(L, G(L)->strt.hash, G(L)->strt.size); luaZ_freebuffer(L, &g->buff); freestack(L); lua_assert(gettotalbytes(g) == sizeof(LG)); (*g->frealloc)(g->ud, fromstate(L), sizeof(LG), 0); /* free main block */ }
static void close_state (lua_State *L) { global_State *g = G(L); luaF_close(L, L->stack); /* close all upvalues for this thread */ luaC_freeallobjects(L); /* collect all objects */ if (g->version) /* closing a fully built state? */ luai_userstateclose(L); luaM_freearray(L, G(L)->strt.hash, G(L)->strt.size); freestack(L); lua_assert(gettotalbytes(g) == sizeof(LG)); (*g->frealloc)(g->ud, fromstate(L), sizeof(LG), 0); /* free main block */ }
void luaF_freeproto (lua_State *L, Proto *f) { luaM_freearray(L, f->code, f->sizecode); luaM_freearray(L, f->p, f->sizep); luaM_freearray(L, f->k, f->sizek); luaM_freearray(L, f->lineinfo, f->sizelineinfo); luaM_freearray(L, f->abslineinfo, f->sizeabslineinfo); luaM_freearray(L, f->locvars, f->sizelocvars); luaM_freearray(L, f->upvalues, f->sizeupvalues); luaM_free(L, f); }
static void freestack (lua_State *L, lua_State *L1) { struct lua_longjmp *pj, *pprev, *pnext; luaM_freearray(L, L1->base_ci, L1->size_ci, CallInfo); luaM_freearray(L, L1->stack, L1->stacksize, TValue); /* free try-catch info */ pj = L->errorJmp; pnext = NULL; while (pj) { pprev = pj->previous; if (pj->type == JMPTYPE_TRY) { if (pnext == NULL) L->errorJmp = pprev; else pnext->previous = pprev; luaM_free(L, pj); } else pnext = pj; pj = pprev; } }
void reginfos_free (lua_State *L, Proto *f) { int i; RegInfo *reginfo, *tmp; for (i = 0; i < f->sizereginfos; i++) { reginfo = &(f->reginfos[i]); if (reginfo->state == RI_UNUSED || reginfo->state == RI_LOCAL_UNUSED) continue; reginfo = reginfo->next; while (reginfo != NULL) { tmp = reginfo; reginfo = reginfo->next; tmp->next = NULL; luaM_free(L, tmp); } } luaM_freearray(L, f->reginfos, f->sizereginfos); }
static void freestack (lua_State *L, lua_State *L1) { luaM_freearray(L, L1->base_ci, L1->size_ci, CallInfo); luaM_freearray(L, L1->stack, L1->stacksize, TObject); }
void luaF_freeproto (lua_State *L, Proto *f) { luaM_freearray(L, f->p, f->sp->sizep); luaM_freearray(L, f->k, f->sp->sizek); freesharedproto(L, f->sp); luaM_free(L, f); }
static void freehash (lua_State *L, Table *t) { if (!isdummy(t)) luaM_freearray(L, t->node, cast_sizet(sizenode(t))); }
static void ICACHE_FLASH_ATTR freestack (lua_State *L, lua_State *L1) { luaM_freearray(L, L1->base_ci, L1->size_ci, CallInfo); luaM_freearray(L, L1->stack, L1->stacksize, TValue); }