commit 2a59a999d482daa619cbf8fc8f78918d9a0c7e77
parent ee7d0c26493e1303a06f45b28ee2822c5a6aff05
Author: Roberto Ierusalimschy <roberto@inf.puc-rio.br>
Date: Thu, 26 May 2011 14:12:07 -0300
yet another macro abstracting TValue representation
Diffstat:
1 file changed, 13 insertions(+), 12 deletions(-)
diff --git a/lobject.h b/lobject.h
@@ -1,5 +1,5 @@
/*
-** $Id: lobject.h,v 2.52 2011/05/05 15:53:23 roberto Exp roberto $
+** $Id: lobject.h,v 2.53 2011/05/05 19:43:14 roberto Exp roberto $
** Type definitions for Lua objects
** See Copyright Notice in lua.h
*/
@@ -114,18 +114,19 @@ typedef struct lua_TValue {
/* Macros to test type */
-#define ttisnumber(o) (rttype(o) == LUA_TNUMBER)
-#define ttisnil(o) (rttype(o) == LUA_TNIL)
-#define ttisboolean(o) (rttype(o) == LUA_TBOOLEAN)
-#define ttislightuserdata(o) (rttype(o) == LUA_TLIGHTUSERDATA)
-#define ttisstring(o) (rttype(o) == ctb(LUA_TSTRING))
-#define ttistable(o) (rttype(o) == ctb(LUA_TTABLE))
+#define checktag(o,t) (rttype(o) == (t))
+#define ttisnumber(o) checktag((o), LUA_TNUMBER)
+#define ttisnil(o) checktag((o), LUA_TNIL)
+#define ttisboolean(o) checktag((o), LUA_TBOOLEAN)
+#define ttislightuserdata(o) checktag((o), LUA_TLIGHTUSERDATA)
+#define ttisstring(o) checktag((o), ctb(LUA_TSTRING))
+#define ttistable(o) checktag((o), ctb(LUA_TTABLE))
#define ttisfunction(o) (ttypenv(o) == LUA_TFUNCTION)
-#define ttisclosure(o) (rttype(o) == ctb(LUA_TFUNCTION))
-#define ttislcf(o) (rttype(o) == LUA_TLCF)
-#define ttisuserdata(o) (rttype(o) == ctb(LUA_TUSERDATA))
-#define ttisthread(o) (rttype(o) == ctb(LUA_TTHREAD))
-#define ttisdeadkey(o) (rttype(o) == ctb(LUA_TDEADKEY))
+#define ttisclosure(o) checktag((o), ctb(LUA_TFUNCTION))
+#define ttislcf(o) checktag((o), LUA_TLCF)
+#define ttisuserdata(o) checktag((o), ctb(LUA_TUSERDATA))
+#define ttisthread(o) checktag((o), ctb(LUA_TTHREAD))
+#define ttisdeadkey(o) checktag((o), ctb(LUA_TDEADKEY))
#define ttisequal(o1,o2) (rttype(o1) == rttype(o2))