diff options
author | robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> | 2012-06-27 19:41:42 +0000 |
---|---|---|
committer | robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> | 2012-06-27 19:41:42 +0000 |
commit | b74af872cc1ce45768df3ae03fa86ad3ed76b582 (patch) | |
tree | d7af92a8668a2bd14e3e1cd1b162aeca08e178dd /include | |
parent | 006db0f1b8d85caea7ac37bc1fca133eca74aac8 (diff) |
Separated Inst counting from the SK_DEBUG #define (now SK_ENABLE_INST_COUNT)
http://codereview.appspot.com/6353047/
git-svn-id: http://skia.googlecode.com/svn/trunk@4376 2bbb7eff-a529-9590-31e7-b0007b416f81
Diffstat (limited to 'include')
-rw-r--r-- | include/config/SkUserConfig.h | 6 | ||||
-rw-r--r-- | include/core/SkInstCnt.h | 8 |
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; \ |