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-github-f874d37fa28037bf3d3300ef8c0740d13792404b.tar.gz |
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 @@ #define luaC_checkGC(L) luaC_condGC(L,(void)0,(void)0) -#define luaC_barrier(L,p,v) ( \ - (iscollectable(v) && isblack(p) && iswhite(gcvalue(v))) ? \ - luaC_barrier_(L,obj2gco(p),gcvalue(v)) : cast_void(0)) - -#define luaC_barrierback(L,p,v) ( \ - (iscollectable(v) && isblack(p) && iswhite(gcvalue(v))) ? \ - luaC_barrierback_(L,p) : cast_void(0)) - #define luaC_objbarrier(L,p,o) ( \ (isblack(p) && iswhite(o)) ? \ luaC_barrier_(L,obj2gco(p),obj2gco(o)) : cast_void(0)) +#define luaC_barrier(L,p,v) ( \ + iscollectable(v) ? luaC_objbarrier(L,p,gcvalue(v)) : cast_void(0)) + +#define luaC_objbarrierback(L,p,o) ( \ + (isblack(p) && iswhite(o)) ? luaC_barrierback_(L,p) : cast_void(0)) + +#define luaC_barrierback(L,p,v) ( \ + iscollectable(v) ? luaC_objbarrierback(L, p, gcvalue(v)) : cast_void(0)) + LUAI_FUNC void luaC_fix (lua_State *L, GCObject *o); LUAI_FUNC void luaC_freeallobjects (lua_State *L); LUAI_FUNC void luaC_step (lua_State *L); |