summaryrefslogtreecommitdiff
path: root/src/utils
diff options
context:
space:
mode:
authorAndrei Karas <akaras@inbox.ru>2016-05-11 02:01:07 +0300
committerAndrei Karas <akaras@inbox.ru>2016-05-11 02:01:07 +0300
commitf8f7131cbb7cb1534d5d3f3c63e02e059d809ca6 (patch)
treee397932aec37fd9a58d509eb11270c38562bfba0 /src/utils
parent6028612674d621653d96740e62c64e41290c37d0 (diff)
downloadplus-f8f7131cbb7cb1534d5d3f3c63e02e059d809ca6.tar.gz
plus-f8f7131cbb7cb1534d5d3f3c63e02e059d809ca6.tar.bz2
plus-f8f7131cbb7cb1534d5d3f3c63e02e059d809ca6.tar.xz
plus-f8f7131cbb7cb1534d5d3f3c63e02e059d809ca6.zip
Define check macroses based on other macroses.
Diffstat (limited to 'src/utils')
-rw-r--r--src/utils/checkutils.h67
1 files changed, 39 insertions, 28 deletions
diff --git a/src/utils/checkutils.h b/src/utils/checkutils.h
index 52545e5cb..9966203dc 100644
--- a/src/utils/checkutils.h
+++ b/src/utils/checkutils.h
@@ -23,25 +23,15 @@
#ifdef ENABLE_ASSERTS
-#define reportFalse(val) \
+#define reportFalseReal(val) \
(val ? true : (reportStack(__FILE__, __LINE__, __func__, \
"Detected false value", #val), false))
-#define reportTrue(val) \
+#define reportTrueReal(val) \
(val ? (reportStack(__FILE__, __LINE__, __func__, \
"Detected false value", #val), true) : false)
-#define failFalse(val) \
- (val ? true : (reportStack(__FILE__, __LINE__, __func__, \
- "Detected false value", #val), \
- throw new std::exception(), false))
-
-#define failTrue(val) \
- (val ? (reportStack(__FILE__, __LINE__, __func__, \
- "Detected false value", #val), \
- throw new std::exception(), true) : false)
-
-#define returnFalseV(val) \
+#define returnFalseVReal(val) \
if (!val) \
{ \
reportStack(__FILE__, __LINE__, __func__, \
@@ -49,7 +39,7 @@
return; \
}
-#define returnTrueV(val) \
+#define returnTrueVReal(val) \
if (val) \
{ \
reportStack(__FILE__, __LINE__, __func__, \
@@ -57,7 +47,7 @@
return; \
}
-#define returnFalse(ret, val) \
+#define returnFalseReal(ret, val) \
if (!val) \
{ \
reportStack(__FILE__, __LINE__, __func__, \
@@ -65,7 +55,7 @@
return ret; \
}
-#define returnTrue(ret, val) \
+#define returnTrueReal(ret, val) \
if (val) \
{ \
reportStack(__FILE__, __LINE__, __func__, \
@@ -73,7 +63,7 @@
return ret; \
}
-#define returnNullptrV(val) \
+#define returnNullptrVReal(val) \
if ((val) == nullptr) \
{ \
reportStack(__FILE__, __LINE__, __func__, \
@@ -81,7 +71,7 @@
return; \
}
-#define returnNullptr(ret, val) \
+#define returnNullptrReal(ret, val) \
if ((val) == nullptr) \
{ \
reportStack(__FILE__, __LINE__, __func__, \
@@ -89,6 +79,16 @@
return ret; \
}
+#define failFalse(val) \
+ (val ? true : (reportStack(__FILE__, __LINE__, __func__, \
+ "Detected false value", #val), \
+ throw new std::exception(), false))
+
+#define failTrue(val) \
+ (val ? (reportStack(__FILE__, __LINE__, __func__, \
+ "Detected false value", #val), \
+ throw new std::exception(), true) : false)
+
void reportStack(const char *const file,
const unsigned int line,
const char *const func,
@@ -97,34 +97,45 @@ void reportStack(const char *const file,
#else // ENABLE_ASSERTS
-#define reportFalse(val) (val)
-#define reportTrue(val) (val)
-#define failFalse(val) (val)
-#define failTrue(val) (val)
+#define reportFalseReal(val) (val)
+#define reportTrueReal(val) (val)
-#define returnFalseV(val) \
+#define returnFalseVReal(val) \
if (!val) \
return;
-#define returnTrueV(val) \
+#define returnTrueVReal(val) \
if (val) \
return;
-#define returnFalse(ret, val) \
+#define returnFalseReal(ret, val) \
if (!val) \
return ret;
-#define returnTrue(ret, val) \
+#define returnTrueReal(ret, val) \
if (val) \
return ret;
-#define returnNullptrV(val) \
+#define returnNullptrVReal(val) \
if ((val) == nullptr) \
return; \
-#define returnNullptr(ret, val) \
+#define returnNullptrReal(ret, val) \
if ((val) == nullptr) \
return ret; \
+#define failFalse(val) (val)
+#define failTrue(val) (val)
+
#endif // ENABLE_ASSERTS
+
+#define reportFalse(val) reportFalseReal(val)
+#define reportTrue(val) reportTrueReal(val)
+#define returnFalseV(val) returnFalseVReal(val)
+#define returnTrueV(val) returnTrueVReal(val)
+#define returnFalse(ret, val) returnFalseReal(ret, val)
+#define returnTrue(ret, val) returnTrueReal(ret, val)
+#define returnNullptrV(val) returnNullptrVReal(val)
+#define returnNullptr(ret, val) returnNullptrReal(ret, val)
+
#endif // UTILS_CHECKUTILS_H