diff options
-rw-r--r-- | src/mem/cache/cache.hh | 3 | ||||
-rw-r--r-- | src/mem/cache/cache_impl.hh | 10 |
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() { |