diff options
| author | Eugene Sandulenko | 2017-01-09 09:10:09 +0100 | 
|---|---|---|
| committer | Eugene Sandulenko | 2017-01-09 09:22:35 +0100 | 
| commit | eab2e06169d2d6447f24f04ef04f1adc342c8aac (patch) | |
| tree | 48fcb9e3aa8b9bf2226ad1b029dbe311e97809e5 | |
| parent | f63b9d0fcb50ff4a976d0dcbfb132f43902454a3 (diff) | |
| download | scummvm-rg350-eab2e06169d2d6447f24f04ef04f1adc342c8aac.tar.gz scummvm-rg350-eab2e06169d2d6447f24f04ef04f1adc342c8aac.tar.bz2 scummvm-rg350-eab2e06169d2d6447f24f04ef04f1adc342c8aac.zip  | |
COMMON: Enhanced debug channel checks.
Now it is possible to enforce checking by specifying level -1,
that is, debug level 11 will not turn it on.
| -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);  | 
