MCPcopy Create free account
hub / github.com/Serial-Studio/Serial-Studio / freeobj

Function freeobj

lib/lua/src/lgc.c:772–814  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

770
771
772static void freeobj (lua_State *L, GCObject *o) {
773 switch (o->tt) {
774 case LUA_VPROTO:
775 luaF_freeproto(L, gco2p(o));
776 break;
777 case LUA_VUPVAL:
778 freeupval(L, gco2upv(o));
779 break;
780 case LUA_VLCL: {
781 LClosure *cl = gco2lcl(o);
782 luaM_freemem(L, cl, sizeLclosure(cl->nupvalues));
783 break;
784 }
785 case LUA_VCCL: {
786 CClosure *cl = gco2ccl(o);
787 luaM_freemem(L, cl, sizeCclosure(cl->nupvalues));
788 break;
789 }
790 case LUA_VTABLE:
791 luaH_free(L, gco2t(o));
792 break;
793 case LUA_VTHREAD:
794 luaE_freethread(L, gco2th(o));
795 break;
796 case LUA_VUSERDATA: {
797 Udata *u = gco2u(o);
798 luaM_freemem(L, o, sizeudata(u->nuvalue, u->len));
799 break;
800 }
801 case LUA_VSHRSTR: {
802 TString *ts = gco2ts(o);
803 luaS_remove(L, ts); /* remove it from hash table */
804 luaM_freemem(L, ts, sizelstring(ts->shrlen));
805 break;
806 }
807 case LUA_VLNGSTR: {
808 TString *ts = gco2ts(o);
809 luaM_freemem(L, ts, sizelstring(ts->u.lnglen));
810 break;
811 }
812 default: lua_assert(0);
813 }
814}
815
816
817/*

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