MCPcopy Create free account
hub / github.com/EmmyLua/EmmyLuaDebugger / convergeephemerons

Function convergeephemerons

third-party/lua-5.2.4/src/lgc.c:594–609  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

592
593
594static void convergeephemerons (global_State *g) {
595 int changed;
596 do {
597 GCObject *w;
598 GCObject *next = g->ephemeron; /* get ephemeron list */
599 g->ephemeron = NULL; /* tables will return to this list when traversed */
600 changed = 0;
601 while ((w = next) != NULL) {
602 next = gco2t(w)->gclist;
603 if (traverseephemeron(g, gco2t(w))) { /* traverse marked some value? */
604 propagateall(g); /* propagate changes */
605 changed = 1; /* will have to revisit all ephemeron tables */
606 }
607 }
608 } while (changed);
609}
610
611/* }====================================================== */
612

Callers 1

atomicFunction · 0.70

Calls 2

traverseephemeronFunction · 0.70
propagateallFunction · 0.70

Tested by

no test coverage detected