aboutsummaryrefslogtreecommitdiff
path: root/lgc.c
diff options
context:
space:
mode:
Diffstat (limited to 'lgc.c')
-rw-r--r--lgc.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/lgc.c b/lgc.c
index dd6af6c5..531094f0 100644
--- a/lgc.c
+++ b/lgc.c
@@ -1,5 +1,5 @@
1/* 1/*
2** $Id: lgc.c,v 2.98 2010/06/04 13:25:10 roberto Exp roberto $ 2** $Id: lgc.c,v 2.99 2010/06/07 16:55:34 roberto Exp roberto $
3** Garbage Collector 3** Garbage Collector
4** See Copyright Notice in lua.h 4** See Copyright Notice in lua.h
5*/ 5*/
@@ -371,7 +371,7 @@ static int traverseephemeron (global_State *g, Table *h) {
371 if (ttisnil(gval(n))) /* entry is empty? */ 371 if (ttisnil(gval(n))) /* entry is empty? */
372 removeentry(n); /* remove it */ 372 removeentry(n); /* remove it */
373 else if (valiswhite(gval(n))) { /* value not marked yet? */ 373 else if (valiswhite(gval(n))) { /* value not marked yet? */
374 if (iscleared(key2tval(n), 1)) /* key is not marked (yet)? */ 374 if (iscleared(gkey(n), 1)) /* key is not marked (yet)? */
375 hasclears = 1; /* may have to propagate mark from key to value */ 375 hasclears = 1; /* may have to propagate mark from key to value */
376 else { /* key is marked, so mark value */ 376 else { /* key is marked, so mark value */
377 marked = 1; /* value was not marked */ 377 marked = 1; /* value was not marked */
@@ -574,7 +574,7 @@ static void cleartable (GCObject *l) {
574 } 574 }
575 for (n = gnode(h, 0); n < limit; n++) { 575 for (n = gnode(h, 0); n < limit; n++) {
576 if (!ttisnil(gval(n)) && /* non-empty entry? */ 576 if (!ttisnil(gval(n)) && /* non-empty entry? */
577 (iscleared(key2tval(n), 1) || iscleared(gval(n), 0))) { 577 (iscleared(gkey(n), 1) || iscleared(gval(n), 0))) {
578 setnilvalue(gval(n)); /* remove value ... */ 578 setnilvalue(gval(n)); /* remove value ... */
579 removeentry(n); /* and remove entry from table */ 579 removeentry(n); /* and remove entry from table */
580 } 580 }