Fix handling of SG_LOG()'s second argument
The popup/no popup logic in SG_LOG() could be wrong before this commit, because of missing parentheses around uses of the second macro argument. For instance, this: SG_LOG(SG_NAVCACHE, t == 0 ? SG_WARN : SG_ALERT, "Message"); could cause a popup window to be displayed even though neither SG_WARN nor SG_ALERT should do that in the current state of the logging system. Thanks to Szymon Acedański for finding this.
This commit is contained in:
@@ -168,10 +168,10 @@ logstream& sglog();
|
||||
do { if(sglog().would_log(C,P)) { \
|
||||
std::ostringstream os; os << M; \
|
||||
sglog().log(C, P, __FILE__, __LINE__, os.str()); \
|
||||
if (P == SG_POPUP) sglog().popup(os.str()); \
|
||||
if ((P) == SG_POPUP) sglog().popup(os.str()); \
|
||||
} } while(0)
|
||||
#ifdef FG_NDEBUG
|
||||
# define SG_LOG(C,P,M) do { if(P == SG_POPUP) SG_LOGX(C,P,M) } while(0)
|
||||
# define SG_LOG(C,P,M) do { if((P) == SG_POPUP) SG_LOGX(C,P,M) } while(0)
|
||||
#else
|
||||
# define SG_LOG(C,P,M) SG_LOGX(C,P,M)
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user