summaryrefslogtreecommitdiff
path: root/lgc.h
diff options
context:
space:
mode:
authorRoberto Ierusalimschy <roberto@inf.puc-rio.br>2004-08-10 16:17:23 -0300
committerRoberto Ierusalimschy <roberto@inf.puc-rio.br>2004-08-10 16:17:23 -0300
commit26ae992129d5566ee973c0ff78fd709cd5d91271 (patch)
tree81082d5ee1abaf94175d7cc66ae2331853ce24ab /lgc.h
parentf87057690b3afa7812d0ef5251ce103902a37c96 (diff)
downloadlua-26ae992129d5566ee973c0ff78fd709cd5d91271.tar.gz
lua-26ae992129d5566ee973c0ff78fd709cd5d91271.tar.bz2
lua-26ae992129d5566ee973c0ff78fd709cd5d91271.zip
less conservative write barrier for tables
Diffstat (limited to 'lgc.h')
-rw-r--r--lgc.h6
1 files changed, 5 insertions, 1 deletions
diff --git a/lgc.h b/lgc.h
index f80c95d1..56d5af39 100644
--- a/lgc.h
+++ b/lgc.h
@@ -1,5 +1,5 @@
1/* 1/*
2** $Id: lgc.h,v 2.4 2004/03/09 17:34:35 roberto Exp roberto $ 2** $Id: lgc.h,v 2.5 2004/03/15 21:04:33 roberto Exp roberto $
3** Garbage Collector 3** Garbage Collector
4** See Copyright Notice in lua.h 4** See Copyright Notice in lua.h
5*/ 5*/
@@ -77,6 +77,9 @@
77#define luaC_barrier(L,p,v) { if (valiswhite(v) && isblack(obj2gco(p))) \ 77#define luaC_barrier(L,p,v) { if (valiswhite(v) && isblack(obj2gco(p))) \
78 luaC_barrierf(L,obj2gco(p),gcvalue(v)); } 78 luaC_barrierf(L,obj2gco(p),gcvalue(v)); }
79 79
80#define luaC_barriert(L,p,v) { if (valiswhite(v) && isblack(obj2gco(p))) \
81 luaC_barrierback(L,obj2gco(p),gcvalue(v)); }
82
80#define luaC_objbarrier(L,p,o) \ 83#define luaC_objbarrier(L,p,o) \
81 { if (iswhite(obj2gco(o)) && isblack(obj2gco(p))) \ 84 { if (iswhite(obj2gco(o)) && isblack(obj2gco(p))) \
82 luaC_barrierf(L,obj2gco(p),obj2gco(o)); } 85 luaC_barrierf(L,obj2gco(p),obj2gco(o)); }
@@ -89,6 +92,7 @@ void luaC_fullgc (lua_State *L);
89void luaC_link (lua_State *L, GCObject *o, lu_byte tt); 92void luaC_link (lua_State *L, GCObject *o, lu_byte tt);
90void luaC_linkupval (lua_State *L, UpVal *uv); 93void luaC_linkupval (lua_State *L, UpVal *uv);
91void luaC_barrierf (lua_State *L, GCObject *o, GCObject *v); 94void luaC_barrierf (lua_State *L, GCObject *o, GCObject *v);
95void luaC_barrierback (lua_State *L, GCObject *o, GCObject *v);
92 96
93 97
94#endif 98#endif