diff options
author | Roberto Ierusalimschy <roberto@inf.puc-rio.br> | 2022-12-15 14:18:03 -0300 |
---|---|---|
committer | Roberto Ierusalimschy <roberto@inf.puc-rio.br> | 2022-12-15 14:18:03 -0300 |
commit | f874d37fa28037bf3d3300ef8c0740d13792404b (patch) | |
tree | 740800b07a045fc39afb8f7dedc40b7437813012 | |
parent | 35e01ed21d018e1c6428ae0351d8597e53a620b3 (diff) | |
download | lua-f874d37fa28037bf3d3300ef8c0740d13792404b.tar.gz lua-f874d37fa28037bf3d3300ef8c0740d13792404b.tar.bz2 lua-f874d37fa28037bf3d3300ef8c0740d13792404b.zip |
Small change in barrier macros
Reuse macros for objects when defining the macros for values.
-rw-r--r-- | lgc.h | 17 |
1 files changed, 9 insertions, 8 deletions
@@ -172,18 +172,19 @@ | |||
172 | #define luaC_checkGC(L) luaC_condGC(L,(void)0,(void)0) | 172 | #define luaC_checkGC(L) luaC_condGC(L,(void)0,(void)0) |
173 | 173 | ||
174 | 174 | ||
175 | #define luaC_barrier(L,p,v) ( \ | ||
176 | (iscollectable(v) && isblack(p) && iswhite(gcvalue(v))) ? \ | ||
177 | luaC_barrier_(L,obj2gco(p),gcvalue(v)) : cast_void(0)) | ||
178 | |||
179 | #define luaC_barrierback(L,p,v) ( \ | ||
180 | (iscollectable(v) && isblack(p) && iswhite(gcvalue(v))) ? \ | ||
181 | luaC_barrierback_(L,p) : cast_void(0)) | ||
182 | |||
183 | #define luaC_objbarrier(L,p,o) ( \ | 175 | #define luaC_objbarrier(L,p,o) ( \ |
184 | (isblack(p) && iswhite(o)) ? \ | 176 | (isblack(p) && iswhite(o)) ? \ |
185 | luaC_barrier_(L,obj2gco(p),obj2gco(o)) : cast_void(0)) | 177 | luaC_barrier_(L,obj2gco(p),obj2gco(o)) : cast_void(0)) |
186 | 178 | ||
179 | #define luaC_barrier(L,p,v) ( \ | ||
180 | iscollectable(v) ? luaC_objbarrier(L,p,gcvalue(v)) : cast_void(0)) | ||
181 | |||
182 | #define luaC_objbarrierback(L,p,o) ( \ | ||
183 | (isblack(p) && iswhite(o)) ? luaC_barrierback_(L,p) : cast_void(0)) | ||
184 | |||
185 | #define luaC_barrierback(L,p,v) ( \ | ||
186 | iscollectable(v) ? luaC_objbarrierback(L, p, gcvalue(v)) : cast_void(0)) | ||
187 | |||
187 | LUAI_FUNC void luaC_fix (lua_State *L, GCObject *o); | 188 | LUAI_FUNC void luaC_fix (lua_State *L, GCObject *o); |
188 | LUAI_FUNC void luaC_freeallobjects (lua_State *L); | 189 | LUAI_FUNC void luaC_freeallobjects (lua_State *L); |
189 | LUAI_FUNC void luaC_step (lua_State *L); | 190 | LUAI_FUNC void luaC_step (lua_State *L); |