summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/mem/cache/cache.hh3
-rw-r--r--src/mem/cache/cache_impl.hh10
2 files changed, 13 insertions, 0 deletions
diff --git a/src/mem/cache/cache.hh b/src/mem/cache/cache.hh
index faa317917..729e1f32c 100644
--- a/src/mem/cache/cache.hh
+++ b/src/mem/cache/cache.hh
@@ -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
diff --git a/src/mem/cache/cache_impl.hh b/src/mem/cache/cache_impl.hh
index 90020c295..b4ace5f6c 100644
--- a/src/mem/cache/cache_impl.hh
+++ b/src/mem/cache/cache_impl.hh
@@ -84,6 +84,16 @@ Cache<TagStore>::Cache(const Params *p)
}
template<class TagStore>
+Cache<TagStore>::~Cache()
+{
+ delete [] tempBlock->data;
+ delete tempBlock;
+
+ delete cpuSidePort;
+ delete memSidePort;
+}
+
+template<class TagStore>
void
Cache<TagStore>::regStats()
{