diff options
-rw-r--r-- | lgc.c | 4 |
1 files changed, 2 insertions, 2 deletions
@@ -1,5 +1,5 @@ | |||
1 | /* | 1 | /* |
2 | ** $Id: lgc.c,v 2.140.1.1 2013/04/12 18:48:47 roberto Exp roberto $ | 2 | ** $Id: lgc.c,v 2.140.1.2 2013/04/26 18:22:05 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 | */ |
@@ -403,7 +403,7 @@ static int traverseephemeron (global_State *g, Table *h) { | |||
403 | reallymarkobject(g, gcvalue(gval(n))); /* mark it now */ | 403 | reallymarkobject(g, gcvalue(gval(n))); /* mark it now */ |
404 | } | 404 | } |
405 | } | 405 | } |
406 | if (prop) | 406 | if (g->gcstate != GCSatomic || prop) |
407 | linktable(h, &g->ephemeron); /* have to propagate again */ | 407 | linktable(h, &g->ephemeron); /* have to propagate again */ |
408 | else if (hasclears) /* does table have white keys? */ | 408 | else if (hasclears) /* does table have white keys? */ |
409 | linktable(h, &g->allweak); /* may have to clean white keys */ | 409 | linktable(h, &g->allweak); /* may have to clean white keys */ |