From 87912786af9125d062babe2497fc4cb664728eda Mon Sep 17 00:00:00 2001 From: Roberto Ierusalimschy Date: Sat, 24 Sep 2011 18:12:01 -0300 Subject: dead objects are not collectable. --- lgc.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'lgc.c') diff --git a/lgc.c b/lgc.c index 89cdd2c5..1c741a4a 100644 --- a/lgc.c +++ b/lgc.c @@ -100,12 +100,13 @@ static void reallymarkobject (global_State *g, GCObject *o); /* -** mark a table entry as dead (therefore removing it from the table) +** if key is not marked, mark its entry as dead (therefore removing it +** from the table) */ static void removeentry (Node *n) { lua_assert(ttisnil(gval(n))); - if (iscollectable(gkey(n))) - setdeadvalue(gkey(n)); /* dead key; remove it */ + if (valiswhite(gkey(n))) + setdeadvalue(gkey(n)); /* unused and unmarked key; remove it */ } -- cgit v1.2.3-55-g6feb