| 521 | |
| 522 | |
| 523 | static void traversestrongtable (global_State *g, Table *h) { |
| 524 | Node *n, *limit = gnodelast(h); |
| 525 | unsigned int i; |
| 526 | unsigned int asize = luaH_realasize(h); |
| 527 | for (i = 0; i < asize; i++) /* traverse array part */ |
| 528 | markvalue(g, &h->array[i]); |
| 529 | for (n = gnode(h, 0); n < limit; n++) { /* traverse hash part */ |
| 530 | if (isempty(gval(n))) /* entry is empty? */ |
| 531 | clearkey(n); /* clear its key */ |
| 532 | else { |
| 533 | lua_assert(!keyisnil(n)); |
| 534 | markkey(g, n); |
| 535 | markvalue(g, gval(n)); |
| 536 | } |
| 537 | } |
| 538 | genlink(g, obj2gco(h)); |
| 539 | } |
| 540 | |
| 541 | |
| 542 | static lu_mem traversetable (global_State *g, Table *h) { |
no test coverage detected