Changed definition of macro 'l_isfalse'
The old definition did one test for nil, but three tests for the all
too common booleans (and two tests for other values); this definition
does two tests for all values.
diff --git a/lobject.h b/lobject.h
index 0c38aff..7d30b46 100644
--- a/lobject.h
+++ b/lobject.h
@@ -216,7 +216,7 @@
#define bvalueraw(v) ((v).b)
-#define l_isfalse(o) (ttisnil(o) || (ttisboolean(o) && bvalue(o) == 0))
+#define l_isfalse(o) (ttisboolean(o) ? bvalue(o) == 0 : ttisnil(o))
#define setbvalue(obj,x) \
{ TValue *io=(obj); val_(io).b=(x); settt_(io, LUA_TBOOLEAN); }