MCPcopy Create free account
hub / github.com/ObEngine/ObEngine / freeobj

Function freeobj

extlibs/lua/src/lgc.c:711–745  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

709
710
711static void freeobj (lua_State *L, GCObject *o) {
712 switch (o->tt) {
713 case LUA_VPROTO:
714 luaF_freeproto(L, gco2p(o));
715 break;
716 case LUA_VUPVAL:
717 freeupval(L, gco2upv(o));
718 break;
719 case LUA_VLCL:
720 luaM_freemem(L, o, sizeLclosure(gco2lcl(o)->nupvalues));
721 break;
722 case LUA_VCCL:
723 luaM_freemem(L, o, sizeCclosure(gco2ccl(o)->nupvalues));
724 break;
725 case LUA_VTABLE:
726 luaH_free(L, gco2t(o));
727 break;
728 case LUA_VTHREAD:
729 luaE_freethread(L, gco2th(o));
730 break;
731 case LUA_VUSERDATA: {
732 Udata *u = gco2u(o);
733 luaM_freemem(L, o, sizeudata(u->nuvalue, u->len));
734 break;
735 }
736 case LUA_VSHRSTR:
737 luaS_remove(L, gco2ts(o)); /* remove it from hash table */
738 luaM_freemem(L, o, sizelstring(gco2ts(o)->shrlen));
739 break;
740 case LUA_VLNGSTR:
741 luaM_freemem(L, o, sizelstring(gco2ts(o)->u.lnglen));
742 break;
743 default: lua_assert(0);
744 }
745}
746
747
748/*

Callers 4

sweeplistFunction · 0.85
sweep2oldFunction · 0.85
sweepgenFunction · 0.85
deletelistFunction · 0.85

Calls 5

luaF_freeprotoFunction · 0.85
freeupvalFunction · 0.85
luaH_freeFunction · 0.85
luaE_freethreadFunction · 0.85
luaS_removeFunction · 0.85

Tested by

no test coverage detected