Chromium Code Reviews| Index: third_party/WebKit/Source/wtf/Assertions.h |
| diff --git a/third_party/WebKit/Source/wtf/Assertions.h b/third_party/WebKit/Source/wtf/Assertions.h |
| index db71532243b89a103a0bb64e8fd75fe840260266..fc4da7bfc1881745d359d65e4f447182815b7878 100644 |
| --- a/third_party/WebKit/Source/wtf/Assertions.h |
| +++ b/third_party/WebKit/Source/wtf/Assertions.h |
| @@ -49,12 +49,7 @@ |
| // Users must test "#if ENABLE(ASSERT)", which helps ensure that code |
| // testing this macro has included this header. |
| #ifndef ENABLE_ASSERT |
| -#if defined(NDEBUG) && !defined(DCHECK_ALWAYS_ON) |
| -/* Disable ASSERT* macros in release mode by default. */ |
| -#define ENABLE_ASSERT 0 |
| -#else |
| -#define ENABLE_ASSERT 1 |
| -#endif /* defined(NDEBUG) && !defined(DCHECK_ALWAYS_ON) */ |
| +#define ENABLE_ASSERT DCHECK_IS_ON() |
| #endif |
| #ifndef LOG_DISABLED |
| @@ -157,6 +152,18 @@ class WTF_EXPORT ScopedLogger { |
| #undef ASSERT |
| #endif |
| +// If DCHECK is configured to dump-without-crashing then enable assertions, |
| +// but also configure them to dump-without-crashing. |
| +#if defined(DCHECK_IS_DUMP_WITHOUT_CRASH) |
| + |
| +#define ASSERT(assertion) DCHECK(assertion) |
| +#define ASSERT_NOT_REACHED() NOTREACHED() |
|
Wez
2016/12/19 23:57:46
Note that this has significant performance implica
esprehn
2016/12/20 03:16:29
What was the perf change? Not sure I understand ho
Wez
2017/01/07 00:18:47
Earlier versions of the patch left Blink assertion
|
| + |
| +// |file| and |line| won't actually be logged, but must be referenced. |
| +#define DCHECK_AT(assertion, file, line) DCHECK(assertion) << file << line |
| + |
| +#else // defined(DCHECK_IS_DUMP_WITHOUT_CRASH) |
| + |
| #define DCHECK_AT(assertion, file, line) \ |
| LAZY_STREAM(logging::LogMessage(file, line, #assertion).stream(), \ |
| DCHECK_IS_ON() ? !(assertion) : false) |
| @@ -182,6 +189,8 @@ class WTF_EXPORT ScopedLogger { |
| #endif |
| +#endif // defined(DCHECK_ALWAYS_ON) |
| + |
| // Users must test "#if ENABLE(SECURITY_ASSERT)", which helps ensure |
| // that code testing this macro has included this header. |
| #if defined(ADDRESS_SANITIZER) || ENABLE(ASSERT) |