commit 4a7fe61806b266d895c0d2a4725dc427315022bb
parent 9243c414d92c253edd908f438caa31e2aa16f3f4
Author: Roberto Ierusalimschy <roberto@inf.puc-rio.br>
Date: Fri, 23 Feb 2018 10:21:00 -0300
in 'clearbykeys', clear keys of just-removed entries too
Diffstat:
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/lgc.c b/lgc.c
@@ -1,5 +1,5 @@
/*
-** $Id: lgc.c,v 2.248 2018/02/20 16:52:50 roberto Exp roberto $
+** $Id: lgc.c,v 2.250 2018/02/23 13:16:18 roberto Exp roberto $
** Garbage Collector
** See Copyright Notice in lua.h
*/
@@ -688,10 +688,10 @@ static void clearbykeys (global_State *g, GCObject *l) {
Node *limit = gnodelast(h);
Node *n;
for (n = gnode(h, 0); n < limit; n++) {
+ if (iscleared(g, gckeyN(n))) /* unmarked key? */
+ setempty(gval(n)); /* remove entry */
if (isempty(gval(n))) /* is entry empty? */
clearkey(n); /* clear its key */
- else if (iscleared(g, gckeyN(n))) /* unmarked key? */
- setempty(gval(n)); /* remove entry */
}
}
}