Bug 1067547 - add more uses of MOZ_COUNT_CTOR to tools/profiler; r?bsmedberg draft
authorTom Tromey <tom@tromey.com>
Mon, 26 Sep 2016 11:05:44 -0600
changeset 420235 9c88092b161f82ec18ff0b5a6eb7a726419b5650
parent 420234 2b50d8e02f67b3cd53131a121c3a5c46e70b08e4
child 420236 21c58a602f93b5b2125b72aac8ce00f2c6eac381
push id31139
push userbmo:ttromey@mozilla.com
push dateMon, 03 Oct 2016 19:19:02 +0000
reviewersbsmedberg
bugs1067547
milestone52.0a1
Bug 1067547 - add more uses of MOZ_COUNT_CTOR to tools/profiler; r?bsmedberg MozReview-Commit-ID: 5Gf5OkydkL0
tools/profiler/core/ThreadInfo.cpp
tools/profiler/core/platform-linux.cc
tools/profiler/public/PseudoStack.h
--- a/tools/profiler/core/ThreadInfo.cpp
+++ b/tools/profiler/core/ThreadInfo.cpp
@@ -16,28 +16,30 @@ ThreadInfo::ThreadInfo(const char* aName
   , mThreadId(aThreadId)
   , mIsMainThread(aIsMainThread)
   , mPseudoStack(aPseudoStack)
   , mPlatformData(Sampler::AllocPlatformData(aThreadId))
   , mProfile(nullptr)
   , mStackTop(aStackTop)
   , mPendingDelete(false)
 {
+  MOZ_COUNT_CTOR(ThreadInfo);
 #ifndef SPS_STANDALONE
   mThread = NS_GetCurrentThread();
 #endif
 
   // We don't have to guess on mac
 #ifdef XP_MACOSX
   pthread_t self = pthread_self();
   mStackTop = pthread_get_stackaddr_np(self);
 #endif
 }
 
 ThreadInfo::~ThreadInfo() {
+  MOZ_COUNT_DTOR(ThreadInfo);
   free(mName);
 
   if (mProfile)
     delete mProfile;
 
   Sampler::FreePlatformData(mPlatformData);
 }
 
--- a/tools/profiler/core/platform-linux.cc
+++ b/tools/profiler/core/platform-linux.cc
@@ -272,17 +272,24 @@ static void ProfilerSignalThread(ThreadP
 
 int tgkill(pid_t tgid, pid_t tid, int signalno) {
   return syscall(SYS_tgkill, tgid, tid, signalno);
 }
 
 class PlatformData {
  public:
   PlatformData()
-  {}
+  {
+    MOZ_COUNT_CTOR(PlatformData);
+  }
+
+  ~PlatformData()
+  {
+    MOZ_COUNT_DTOR(PlatformData);
+  }
 };
 
 /* static */ PlatformData*
 Sampler::AllocPlatformData(int aThreadId)
 {
   return new PlatformData;
 }
 
@@ -382,19 +389,21 @@ static void* SignalSender(void* arg) {
 }
 
 Sampler::Sampler(double interval, bool profiling, int entrySize)
     : interval_(interval),
       profiling_(profiling),
       paused_(false),
       active_(false),
       entrySize_(entrySize) {
+  MOZ_COUNT_CTOR(Sampler);
 }
 
 Sampler::~Sampler() {
+  MOZ_COUNT_DTOR(Sampler);
   ASSERT(!signal_sender_launched_);
 }
 
 
 void Sampler::Start() {
   LOG("Sampler started");
 
 #if defined(USE_EHABI_STACKWALK)
--- a/tools/profiler/public/PseudoStack.h
+++ b/tools/profiler/public/PseudoStack.h
@@ -371,20 +371,23 @@ public:
     , mSleepIdObserved(0)
     , mSleeping(false)
     , mRefCnt(1)
 #ifndef SPS_STANDALONE
     , mContext(nullptr)
 #endif
     , mStartJSSampling(false)
     , mPrivacyMode(false)
-  { }
+  {
+    MOZ_COUNT_CTOR(PseudoStack);
+  }
 
   // A PseudoStack can only be deleted via deref.
   ~PseudoStack() {
+    MOZ_COUNT_DTOR(PseudoStack);
     if (mStackPointer != 0) {
       // We're releasing the pseudostack while it's still in use.
       // The label macros keep a non ref counted reference to the
       // stack to avoid a TLS. If these are not all cleared we will
       // get a use-after-free so better to crash now.
       abort();
     }
   }