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

Function traversestrongtable

extlibs/lua/src/lgc.c:461–480  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

459
460
461static void traversestrongtable (global_State *g, Table *h) {
462 Node *n, *limit = gnodelast(h);
463 unsigned int i;
464 unsigned int asize = luaH_realasize(h);
465 for (i = 0; i < asize; i++) /* traverse array part */
466 markvalue(g, &h->array[i]);
467 for (n = gnode(h, 0); n < limit; n++) { /* traverse hash part */
468 if (isempty(gval(n))) /* entry is empty? */
469 clearkey(n); /* clear its key */
470 else {
471 lua_assert(!keyisnil(n));
472 markkey(g, n);
473 markvalue(g, gval(n));
474 }
475 }
476 if (g->gckind == KGC_GEN) {
477 linkgclist(h, g->grayagain); /* keep it in some gray list */
478 black2gray(h);
479 }
480}
481
482
483static lu_mem traversetable (global_State *g, Table *h) {

Callers 1

traversetableFunction · 0.85

Calls 2

luaH_realasizeFunction · 0.85
clearkeyFunction · 0.85

Tested by

no test coverage detected