Browse Source

cleaner definition for 'luaC_condGC', using 'pre'/'pos' parameters

pull/9/head
Roberto Ierusalimschy 9 years ago
parent
commit
f7670781cf
  1. 9
      lgc.h
  2. 9
      lvm.c

9
lgc.h

@ -1,5 +1,5 @@
/*
** $Id: lgc.h,v 2.86 2014/10/25 11:50:46 roberto Exp roberto $
** $Id: lgc.h,v 2.87 2015/08/03 19:40:42 roberto Exp roberto $
** Garbage Collector
** See Copyright Notice in lua.h
*/
@ -101,9 +101,10 @@
#define luaC_white(g) cast(lu_byte, (g)->currentwhite & WHITEBITS)
#define luaC_condGC(L,c) \
{if (G(L)->GCdebt > 0) {c;}; condchangemem(L);}
#define luaC_checkGC(L) luaC_condGC(L, luaC_step(L);)
#define luaC_condGC(L,pre,pos) \
{if (G(L)->GCdebt > 0) { pre; luaC_step(L); pos;}; condchangemem(L);}
#define luaC_checkGC(L) luaC_condGC(L,,)
#define luaC_barrier(L,p,v) ( \

9
lvm.c

@ -1,5 +1,5 @@
/*
** $Id: lvm.c,v 2.253 2015/09/17 15:51:05 roberto Exp roberto $
** $Id: lvm.c,v 2.254 2015/10/20 17:41:35 roberto Exp roberto $
** Lua virtual machine
** See Copyright Notice in lua.h
*/
@ -733,10 +733,9 @@ void luaV_finishOp (lua_State *L) {
#define Protect(x) { {x;}; base = ci->u.l.base; }
#define checkGC(L,c) \
Protect( luaC_condGC(L,{L->top = (c); /* limit of live values */ \
luaC_step(L); \
L->top = ci->top;}) /* restore top */ \
luai_threadyield(L); )
{ luaC_condGC(L, L->top = (c), /* limit of live values */ \
Protect(L->top = ci->top)); /* restore top */ \
luai_threadyield(L); }
#define vmdispatch(o) switch(o)

Loading…
Cancel
Save