Expanded distribution of instance counting

http://codereview.appspot.com/6300114/



git-svn-id: http://skia.googlecode.com/svn/trunk@4291 2bbb7eff-a529-9590-31e7-b0007b416f81
diff --git a/bench/RefCntBench.cpp b/bench/RefCntBench.cpp
index f21317a..965eb26 100644
--- a/bench/RefCntBench.cpp
+++ b/bench/RefCntBench.cpp
@@ -40,10 +40,17 @@
 
 class PlacedRefCnt : public SkRefCnt {
 public:
+    SK_DECLARE_INST_COUNT(PlacedRefCnt)
+
     PlacedRefCnt() : SkRefCnt() { }
     void operator delete(void *p) { }
+
+private:
+    typedef SkRefCnt INHERITED;
 };
 
+SK_DEFINE_INST_COUNT(PlacedRefCnt)
+
 class RefCntBench_Heap : public SkBenchmark {
 public:
     RefCntBench_Heap(void* param) : INHERITED(param) {
diff --git a/bench/SkBenchmark.cpp b/bench/SkBenchmark.cpp
index a69402b..19bbf59 100644
--- a/bench/SkBenchmark.cpp
+++ b/bench/SkBenchmark.cpp
@@ -9,6 +9,8 @@
 #include "SkPaint.h"
 #include "SkParse.h"
 
+SK_DEFINE_INST_COUNT(SkBenchmark)
+
 template BenchRegistry* BenchRegistry::gHead;
 
 SkBenchmark::SkBenchmark(void* defineDict) {
diff --git a/bench/SkBenchmark.h b/bench/SkBenchmark.h
index 5019b23..1d6fb41 100644
--- a/bench/SkBenchmark.h
+++ b/bench/SkBenchmark.h
@@ -33,6 +33,8 @@
 
 class SkBenchmark : public SkRefCnt {
 public:
+    SK_DECLARE_INST_COUNT(SkBenchmark)
+
     SkBenchmark(void* defineDict);
 
     const char* getName();
@@ -88,6 +90,8 @@
     SkTriState::State  fDither;
     bool    fHasStrokeWidth;
     SkScalar strokeWidth;
+
+    typedef SkRefCnt INHERITED;
 };
 
 typedef SkTRegistry<SkBenchmark*, void*> BenchRegistry;