From 4a7fe61806b266d895c0d2a4725dc427315022bb Mon Sep 17 00:00:00 2001 From: Roberto Ierusalimschy Date: Fri, 23 Feb 2018 10:21:27 -0300 Subject: in 'clearbykeys', clear keys of just-removed entries too --- lgc.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lgc.c b/lgc.c index 8245dc21..13f372d3 100644 --- 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 */ } } } -- cgit v1.2.3-55-g6feb