Chromium Code Reviews| Index: base/logging.h |
| diff --git a/base/logging.h b/base/logging.h |
| index cc0a5aa11bc4de78eaf868d1af2e289236baf4f1..cc341f97c4a601154eaffc5e0a86c475161f9116 100644 |
| --- a/base/logging.h |
| +++ b/base/logging.h |
| @@ -653,12 +653,12 @@ const LogSeverity LOG_DCHECK = LOG_INFO; |
| #else // _PREFAST_ |
| -#define DCHECK(condition) \ |
| - LAZY_STREAM(LOG_STREAM(DCHECK), DCHECK_IS_ON() ? !(condition) : false) \ |
| +#define DCHECK(condition) \ |
| + LAZY_STREAM(LOG_STREAM(DCHECK), DCHECK_IS_ON() && !(condition)) \ |
|
danakj
2015/05/04 18:21:46
This is unrelated, please don't lump multiple logi
Thiemo Nagel
2015/05/04 19:15:47
Done.
|
| << "Check failed: " #condition ". " |
| -#define DPCHECK(condition) \ |
| - LAZY_STREAM(PLOG_STREAM(DCHECK), DCHECK_IS_ON() ? !(condition) : false) \ |
| +#define DPCHECK(condition) \ |
| + LAZY_STREAM(PLOG_STREAM(DCHECK), DCHECK_IS_ON() && !(condition)) \ |
| << "Check failed: " #condition ". " |
| #endif // _PREFAST_ |
| @@ -700,8 +700,12 @@ const LogSeverity LOG_DCHECK = LOG_INFO; |
| #define DCHECK_IMPLIES(val1, val2) DCHECK(!(val1) || (val2)) |
| #if !DCHECK_IS_ON() && defined(OS_CHROMEOS) |
| -#define NOTREACHED() LOG(ERROR) << "NOTREACHED() hit in " << \ |
| - __FUNCTION__ << ". " |
| +// Implement logging of NOTREACHED() as a dedicated function to get function |
| +// call overhead down to a minimum. |
| +void LogErrorNotReached(const char* file, int line, const char* function_name); |
| +#define NOTREACHED() \ |
| + true ? ::logging::LogErrorNotReached(__FILE__, __LINE__, __FUNCTION__) \ |
|
danakj
2015/05/04 18:27:41
what's the point of the ternary that's always true
Thiemo Nagel
2015/05/04 19:15:47
The ternary is used as a binder so that EAT_STREAM
|
| + : EAT_STREAM_PARAMETERS |
| #else |
| #define NOTREACHED() DCHECK(false) |
| #endif |