From 3679d33b02782ff7d7d0fa163b815902b189c89e Mon Sep 17 00:00:00 2001 From: Roberto Ierusalimschy Date: Tue, 13 Aug 2013 14:36:44 -0300 Subject: barrier conditions rewritten to test first 'isblack' and then 'iswhite' (during a pause all objects are white, so 'isblack' fails much more often than 'iswhite') --- lgc.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'lgc.c') diff --git a/lgc.c b/lgc.c index 700a329f..75daf796 100644 --- a/lgc.c +++ b/lgc.c @@ -1,5 +1,5 @@ /* -** $Id: lgc.c,v 2.143 2013/08/07 12:18:11 roberto Exp roberto $ +** $Id: lgc.c,v 2.144 2013/08/07 15:39:09 roberto Exp roberto $ ** Garbage Collector ** See Copyright Notice in lua.h */ @@ -63,6 +63,8 @@ #define black2gray(x) resetbit(gch(x)->marked, BLACKBIT) +#define valiswhite(x) (iscollectable(x) && iswhite(gcvalue(x))) + #define isfinalized(x) testbit(gch(x)->marked, FINALIZEDBIT) #define checkdeadkey(n) lua_assert(!ttisdeadkey(gkey(n)) || ttisnil(gval(n))) -- cgit v1.2.3-55-g6feb