Add RELEASE_ASSERT (and a few friends)
authoroliver@apple.com <oliver@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 23 Jan 2013 21:15:29 +0000 (21:15 +0000)
committeroliver@apple.com <oliver@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 23 Jan 2013 21:15:29 +0000 (21:15 +0000)
https://bugs.webkit.org/show_bug.cgi?id=107725

Reviewed by Filip Pizlo.

Adding a few macros to make release mode assertions easier and more readable.
Also makes same assertions more useful in debug builds.

* wtf/Assertions.h:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@140577 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Source/WTF/ChangeLog
Source/WTF/wtf/Assertions.h

index e39553f..8151c1b 100644 (file)
@@ -1,3 +1,15 @@
+2013-01-23  Oliver Hunt  <oliver@apple.com>
+
+        Add RELEASE_ASSERT (and a few friends)
+        https://bugs.webkit.org/show_bug.cgi?id=107725
+
+        Reviewed by Filip Pizlo.
+
+        Adding a few macros to make release mode assertions easier and more readable.
+        Also makes same assertions more useful in debug builds.
+
+        * wtf/Assertions.h:
+
 2013-01-22  Joshua Bell  <jsbell@chromium.org>
 
         Prevent race condition during Worker shutdown
index 7e1b75e..0305a22 100644 (file)
@@ -390,4 +390,14 @@ static inline void UNREACHABLE_FOR_PLATFORM()
 #define UNREACHABLE_FOR_PLATFORM() ASSERT_NOT_REACHED()
 #endif
 
+#if ASSERT_DISABLED
+#define RELEASE_ASSERT(assertion) (!(assertion) ? (CRASH()) : (void)0)
+#define RELEASE_ASSERT_WITH_MESSAGE(assertion, ...) RELEASE_ASSERT(assertion)
+#define RELEASE_ASSERT_NOT_REACHED() CRASH()
+#else
+#define RELEASE_ASSERT(assertion) ASSERT(assertion)
+#define RELEASE_ASSERT_WITH_MESSAGE(assertion, ...) ASSERT_WITH_MESSAGE(assertion, __VA_ARGS__)
+#define RELEASE_ASSERT_NOT_REACHED() ASSERT_NOT_REACHED()
+#endif
+
 #endif /* WTF_Assertions_h */