Add a destructor for sos::GCHeap (#24072)
authorOmair Majid <omajid@redhat.com>
Thu, 18 Apr 2019 17:36:25 +0000 (13:36 -0400)
committerMike McLaughlin <mikem@microsoft.com>
Thu, 18 Apr 2019 17:36:25 +0000 (10:36 -0700)
The constructor allocates memory via new[]. It should be freed up via
delete[] by a destructor to avoid a memory leak.

src/ToolBox/SOS/Strike/sos.cpp
src/ToolBox/SOS/Strike/sos.h

index bf84e1d..4aacc2a 100644 (file)
@@ -795,6 +795,11 @@ namespace sos
         }
     }
 
+    GCHeap::~GCHeap()
+    {
+        delete [] mHeaps;
+    }
+
     ObjectIterator GCHeap::WalkHeap(TADDR start, TADDR stop) const
     {
         return ObjectIterator(mHeaps, mNumHeaps, start, stop);
index 80608dd..4d154ef 100644 (file)
@@ -752,6 +752,8 @@ namespace sos
          */
         GCHeap();
 
+        ~GCHeap();
+
         /* Returns an ObjectIterator which allows you to walk the objects on the managed heap.
          * This ObjectIterator is valid for the duration of the GCHeap's lifetime.  Note that
          * if you specify an address at which you wish to start walking the heap it need