MCPcopy Create free account
hub / github.com/DFHack/dfhack / freeobj

Function freeobj

depends/lua/src/lgc.c:697–721  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

695
696
697static void freeobj (lua_State *L, GCObject *o) {
698 switch (o->tt) {
699 case LUA_TPROTO: luaF_freeproto(L, gco2p(o)); break;
700 case LUA_TLCL: {
701 freeLclosure(L, gco2lcl(o));
702 break;
703 }
704 case LUA_TCCL: {
705 luaM_freemem(L, o, sizeCclosure(gco2ccl(o)->nupvalues));
706 break;
707 }
708 case LUA_TTABLE: luaH_free(L, gco2t(o)); break;
709 case LUA_TTHREAD: luaE_freethread(L, gco2th(o)); break;
710 case LUA_TUSERDATA: luaM_freemem(L, o, sizeudata(gco2u(o))); break;
711 case LUA_TSHRSTR:
712 luaS_remove(L, gco2ts(o)); /* remove it from hash table */
713 luaM_freemem(L, o, sizelstring(gco2ts(o)->shrlen));
714 break;
715 case LUA_TLNGSTR: {
716 luaM_freemem(L, o, sizelstring(gco2ts(o)->u.lnglen));
717 break;
718 }
719 default: lua_assert(0);
720 }
721}
722
723
724#define sweepwholelist(L,p) sweeplist(L,p,MAX_LUMEM)

Callers 1

sweeplistFunction · 0.85

Calls 5

luaF_freeprotoFunction · 0.85
freeLclosureFunction · 0.85
luaH_freeFunction · 0.85
luaE_freethreadFunction · 0.85
luaS_removeFunction · 0.85

Tested by

no test coverage detected