mem: Add cache class destructor to avoid memory leaks
authorXiangyu Dong <rioshering@gmail.com>
Thu, 18 Jul 2013 12:29:47 +0000 (08:29 -0400)
committerXiangyu Dong <rioshering@gmail.com>
Thu, 18 Jul 2013 12:29:47 +0000 (08:29 -0400)
Make valgrind a little bit happier

src/mem/cache/cache.hh
src/mem/cache/cache_impl.hh

index faa317917efa004aa2e2f36fccb5500de3bf580e..729e1f32ccb25a69c812ebc71c41b896aba13e95 100644 (file)
@@ -411,6 +411,9 @@ class Cache : public BaseCache
     /** Instantiates a basic cache object. */
     Cache(const Params *p);
 
+    /** Non-default destructor is needed to deallocate memory. */
+    virtual ~Cache();
+
     void regStats();
 
     /** serialize the state of the caches
index 90020c2958a0e54b615f18b65949dde20be1f216..b4ace5f6cc0cc07430eecb4400998e3f176fd000 100644 (file)
@@ -83,6 +83,16 @@ Cache<TagStore>::Cache(const Params *p)
         prefetcher->setCache(this);
 }
 
+template<class TagStore>
+Cache<TagStore>::~Cache()
+{
+    delete [] tempBlock->data;
+    delete tempBlock;
+
+    delete cpuSidePort;
+    delete memSidePort;
+}
+
 template<class TagStore>
 void
 Cache<TagStore>::regStats()