Commit 11ee5380 authored by Oleg Kolosov's avatar Oleg Kolosov

Change KJ_LOG macro to use "for" statement

Using "for" statement instead of "if", as suggested by Kenton, still
avoids "dangling else" warnings and also allows to have diagnostics on
missing ";" at the end. So this way is better.
parent 6de0e9b5
......@@ -131,9 +131,10 @@ namespace kj {
#define KJ_EXPAND(X) X
#define KJ_LOG(severity, ...) \
{ if (!::kj::_::Debug::shouldLog(::kj::LogSeverity::severity)) {} else \
for (bool _kj_shouldLog = ::kj::_::Debug::shouldLog(::kj::LogSeverity::severity); \
_kj_shouldLog; _kj_shouldLog = false) \
::kj::_::Debug::log(__FILE__, __LINE__, ::kj::LogSeverity::severity, \
"" #__VA_ARGS__, __VA_ARGS__); }
"" #__VA_ARGS__, __VA_ARGS__)
#define KJ_DBG(...) KJ_EXPAND(KJ_LOG(DBG, __VA_ARGS__))
......@@ -210,9 +211,10 @@ namespace kj {
#else
#define KJ_LOG(severity, ...) \
{ if (!::kj::_::Debug::shouldLog(::kj::LogSeverity::severity)) {} else \
for (bool _kj_shouldLog = ::kj::_::Debug::shouldLog(::kj::LogSeverity::severity); \
_kj_shouldLog; _kj_shouldLog = false) \
::kj::_::Debug::log(__FILE__, __LINE__, ::kj::LogSeverity::severity, \
#__VA_ARGS__, ##__VA_ARGS__); }
#__VA_ARGS__, ##__VA_ARGS__)
#define KJ_DBG(...) KJ_LOG(DBG, ##__VA_ARGS__)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment