diff --git a/lgc.h b/lgc.h index 4501db51..0d77edb5 100644 --- a/lgc.h +++ b/lgc.h @@ -1,5 +1,5 @@ /* -** $Id: lgc.h,v 2.87 2015/08/03 19:40:42 roberto Exp roberto $ +** $Id: lgc.h,v 2.88 2015/10/20 17:56:21 roberto Exp roberto $ ** Garbage Collector ** See Copyright Notice in lua.h */ @@ -101,9 +101,16 @@ #define luaC_white(g) cast(lu_byte, (g)->currentwhite & WHITEBITS) +/* +** Does one step of collection when debt becomes positive. 'pre'/'pos' +** allows some adjustments to be done only when needed. macro +** 'condchangemem' is used only for heavy tests (forcing a full +** GC cycle on every opportunity) +*/ #define luaC_condGC(L,pre,pos) \ {if (G(L)->GCdebt > 0) { pre; luaC_step(L); pos;}; condchangemem(L);} +/* more often than not, 'pre'/'pos' are empty */ #define luaC_checkGC(L) luaC_condGC(L,,)