summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRoberto Ierusalimschy <roberto@inf.puc-rio.br>2022-12-15 14:18:03 -0300
committerRoberto Ierusalimschy <roberto@inf.puc-rio.br>2022-12-15 14:18:03 -0300
commitf874d37fa28037bf3d3300ef8c0740d13792404b (patch)
tree740800b07a045fc39afb8f7dedc40b7437813012
parent35e01ed21d018e1c6428ae0351d8597e53a620b3 (diff)
downloadlua-github-f874d37fa28037bf3d3300ef8c0740d13792404b.tar.gz
Small change in barrier macros
Reuse macros for objects when defining the macros for values.
-rw-r--r--lgc.h17
1 files changed, 9 insertions, 8 deletions
diff --git a/lgc.h b/lgc.h
index c960e706..538f6edc 100644
--- a/lgc.h
+++ b/lgc.h
@@ -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);