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

Function propagatemark

lib/lua/src/lgc.c:660–673  ·  view source on GitHub ↗

** traverse one gray object, turning it to black. */

Source from the content-addressed store, hash-verified

658** traverse one gray object, turning it to black.
659*/
660static lu_mem propagatemark (global_State *g) {
661 GCObject *o = g->gray;
662 nw2black(o);
663 g->gray = *getgclist(o); /* remove from 'gray' list */
664 switch (o->tt) {
665 case LUA_VTABLE: return traversetable(g, gco2t(o));
666 case LUA_VUSERDATA: return traverseudata(g, gco2u(o));
667 case LUA_VLCL: return traverseLclosure(g, gco2lcl(o));
668 case LUA_VCCL: return traverseCclosure(g, gco2ccl(o));
669 case LUA_VPROTO: return traverseproto(g, gco2p(o));
670 case LUA_VTHREAD: return traversethread(g, gco2th(o));
671 default: lua_assert(0); return 0;
672 }
673}
674
675
676static lu_mem propagateall (global_State *g) {

Callers 2

propagateallFunction · 0.85
singlestepFunction · 0.85

Calls 7

getgclistFunction · 0.85
traversetableFunction · 0.85
traverseudataFunction · 0.85
traverseLclosureFunction · 0.85
traverseCclosureFunction · 0.85
traverseprotoFunction · 0.85
traversethreadFunction · 0.85

Tested by

no test coverage detected