diff options
Diffstat (limited to 'lgc.h')
-rw-r--r-- | lgc.h | 22 |
1 files changed, 13 insertions, 9 deletions
@@ -1,5 +1,5 @@ | |||
1 | /* | 1 | /* |
2 | ** $Id: lgc.h,v 2.40 2010/05/10 16:46:49 roberto Exp roberto $ | 2 | ** $Id: lgc.h,v 2.41 2010/05/10 18:23:45 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 | */ |
@@ -112,17 +112,20 @@ | |||
112 | 112 | ||
113 | 113 | ||
114 | #define luaC_barrier(L,p,v) { if (valiswhite(v) && isblack(obj2gco(p))) \ | 114 | #define luaC_barrier(L,p,v) { if (valiswhite(v) && isblack(obj2gco(p))) \ |
115 | luaC_barrierf(L,obj2gco(p),gcvalue(v)); } | 115 | luaC_barrier_(L,obj2gco(p),gcvalue(v)); } |
116 | 116 | ||
117 | #define luaC_barriert(L,t,v) { if (valiswhite(v) && isblack(obj2gco(t))) \ | 117 | #define luaC_barrierback(L,p,v) { if (valiswhite(v) && isblack(obj2gco(p))) \ |
118 | luaC_barrierback(L,t); } | 118 | luaC_barrierback_(L,p); } |
119 | 119 | ||
120 | #define luaC_objbarrier(L,p,o) \ | 120 | #define luaC_objbarrier(L,p,o) \ |
121 | { if (iswhite(obj2gco(o)) && isblack(obj2gco(p))) \ | 121 | { if (iswhite(obj2gco(o)) && isblack(obj2gco(p))) \ |
122 | luaC_barrierf(L,obj2gco(p),obj2gco(o)); } | 122 | luaC_barrier_(L,obj2gco(p),obj2gco(o)); } |
123 | 123 | ||
124 | #define luaC_objbarriert(L,t,o) \ | 124 | #define luaC_objbarrierback(L,p,o) \ |
125 | { if (iswhite(obj2gco(o)) && isblack(obj2gco(t))) luaC_barrierback(L,t); } | 125 | { if (iswhite(obj2gco(o)) && isblack(obj2gco(p))) luaC_barrierback_(L,p); } |
126 | |||
127 | #define luaC_barrierproto(L,p) \ | ||
128 | { if (isblack(obj2gco(p))) luaC_barrierproto_(L,p); } | ||
126 | 129 | ||
127 | LUAI_FUNC void luaC_separateudata (lua_State *L, int all); | 130 | LUAI_FUNC void luaC_separateudata (lua_State *L, int all); |
128 | LUAI_FUNC void luaC_freeallobjects (lua_State *L); | 131 | LUAI_FUNC void luaC_freeallobjects (lua_State *L); |
@@ -131,8 +134,9 @@ LUAI_FUNC void luaC_runtilstate (lua_State *L, int statesmask); | |||
131 | LUAI_FUNC void luaC_fullgc (lua_State *L, int isemergency); | 134 | LUAI_FUNC void luaC_fullgc (lua_State *L, int isemergency); |
132 | LUAI_FUNC GCObject *luaC_newobj (lua_State *L, int tt, size_t sz, | 135 | LUAI_FUNC GCObject *luaC_newobj (lua_State *L, int tt, size_t sz, |
133 | GCObject **list, int offset); | 136 | GCObject **list, int offset); |
134 | LUAI_FUNC void luaC_barrierf (lua_State *L, GCObject *o, GCObject *v); | 137 | LUAI_FUNC void luaC_barrier_ (lua_State *L, GCObject *o, GCObject *v); |
135 | LUAI_FUNC void luaC_barrierback (lua_State *L, Table *t); | 138 | LUAI_FUNC void luaC_barrierback_ (lua_State *L, GCObject *o); |
139 | LUAI_FUNC void luaC_barrierproto_ (lua_State *L, GCObject *p); | ||
136 | LUAI_FUNC void luaC_checkfinalizer (lua_State *L, Udata *u); | 140 | LUAI_FUNC void luaC_checkfinalizer (lua_State *L, Udata *u); |
137 | LUAI_FUNC void luaC_checkupvalcolor (global_State *g, UpVal *uv); | 141 | LUAI_FUNC void luaC_checkupvalcolor (global_State *g, UpVal *uv); |
138 | LUAI_FUNC void luaC_changemode (lua_State *L, int mode); | 142 | LUAI_FUNC void luaC_changemode (lua_State *L, int mode); |