aboutsummaryrefslogtreecommitdiffhomepage
path: root/include
diff options
context:
space:
mode:
authorGravatar robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81>2012-06-27 19:41:42 +0000
committerGravatar robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81>2012-06-27 19:41:42 +0000
commitb74af872cc1ce45768df3ae03fa86ad3ed76b582 (patch)
treed7af92a8668a2bd14e3e1cd1b162aeca08e178dd /include
parent006db0f1b8d85caea7ac37bc1fca133eca74aac8 (diff)
Separated Inst counting from the SK_DEBUG #define (now SK_ENABLE_INST_COUNT)
Diffstat (limited to 'include')
-rw-r--r--include/config/SkUserConfig.h6
-rw-r--r--include/core/SkInstCnt.h8
2 files changed, 11 insertions, 3 deletions
diff --git a/include/config/SkUserConfig.h b/include/config/SkUserConfig.h
index e7f781d733..b180c89fa8 100644
--- a/include/config/SkUserConfig.h
+++ b/include/config/SkUserConfig.h
@@ -65,6 +65,12 @@
//#define SK_DEBUG
//#define SK_RELEASE
+/* To assist debugging, Skia provides an instance counting utility in
+ include/core/SkInstCount.h. This flag turns on and off that utility to
+ allow instance count tracking in either debug or release builds. By
+ default it is enabled in debug but disabled in release.
+ */
+//#define SK_ENABLE_INST_COUNT
/* If, in debugging mode, Skia needs to stop (presumably to invoke a debugger)
it will call SK_CRASH(). If this is not defined it, it is defined in
diff --git a/include/core/SkInstCnt.h b/include/core/SkInstCnt.h
index ff9a19f252..18ea9bb75a 100644
--- a/include/core/SkInstCnt.h
+++ b/include/core/SkInstCnt.h
@@ -18,9 +18,11 @@
* At the end of an application a call to all the "root" objects'
* CheckInstanceCount methods should be made
*/
-#ifdef SK_DEBUG
+#ifdef SK_ENABLE_INST_COUNT
#include "SkTArray.h"
+extern bool gPrintInstCount;
+
#define SK_DECLARE_INST_COUNT(className) \
SK_DECLARE_INST_COUNT_INTERNAL(className, \
INHERITED::AddInstChild(CheckInstanceCount);)
@@ -58,7 +60,7 @@
} \
\
static int CheckInstanceCount(int level = 0) { \
- if (0 != SkInstanceCountHelper::gInstanceCount) { \
+ if (gPrintInstCount && 0 != SkInstanceCountHelper::gInstanceCount) {\
SkDebugf("%*c Leaked %s: %d\n", \
4*level, ' ', #className, \
SkInstanceCountHelper::gInstanceCount); \
@@ -69,7 +71,7 @@
count -= (*SkInstanceCountHelper::gChildren[i])(level+1); \
} \
SkASSERT(count >= 0); \
- if (childCount > 0 && count > 0) { \
+ if (gPrintInstCount && childCount > 0 && count > 0) { \
SkDebugf("%*c Leaked ???: %d\n", 4*(level + 1), ' ', count); \
} \
return SkInstanceCountHelper::gInstanceCount; \