diff options
-rw-r--r-- | common/debug-channels.h | 2 | ||||
-rw-r--r-- | common/debug.cpp | 8 | ||||
-rw-r--r-- | common/debug.h | 1 |
3 files changed, 6 insertions, 5 deletions
diff --git a/common/debug-channels.h b/common/debug-channels.h index 1414a1053a..0fb8006803 100644 --- a/common/debug-channels.h +++ b/common/debug-channels.h @@ -117,7 +117,7 @@ public: /** * Test whether the given debug channel is enabled. */ - bool isDebugChannelEnabled(uint32 channel); + bool isDebugChannelEnabled(uint32 channel, bool enforce = false); private: typedef HashMap<String, DebugChannel, IgnoreCase_Hash, IgnoreCase_EqualTo> DebugChannelMap; diff --git a/common/debug.cpp b/common/debug.cpp index c61fc63dea..5db8990db8 100644 --- a/common/debug.cpp +++ b/common/debug.cpp @@ -110,9 +110,9 @@ void DebugManager::disableAllDebugChannels() { disableDebugChannel(i->_value.name); } -bool DebugManager::isDebugChannelEnabled(uint32 channel) { +bool DebugManager::isDebugChannelEnabled(uint32 channel, bool enforce) { // Debug level 11 turns on all special debug level messages - if (gDebugLevel == 11) + if (gDebugLevel == 11 && enforce == false) return true; else return (gDebugChannelsEnabled & channel) != 0; @@ -125,8 +125,8 @@ bool debugLevelSet(int level) { } bool debugChannelSet(int level, uint32 debugChannels) { - if (gDebugLevel != 11) - if (level > gDebugLevel || !(DebugMan.isDebugChannelEnabled(debugChannels))) + if (gDebugLevel != 11 || level == -1) + if ((level != -1 && level > gDebugLevel) || !(DebugMan.isDebugChannelEnabled(debugChannels, level == -1))) return false; return true; diff --git a/common/debug.h b/common/debug.h index 883a0bf29d..5ec37f2f1e 100644 --- a/common/debug.h +++ b/common/debug.h @@ -117,6 +117,7 @@ bool debugLevelSet(int level); /** * Returns true if the debug level and channel are active * + * @param level debug level to check against. If set to -1, only channel check is active * @see enableDebugChannel */ bool debugChannelSet(int level, uint32 debugChannels); |