diff --git a/src/mem/cache/cache.hh b/src/mem/cache/cache.hh index faa317917e..729e1f32cc 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 90020c2958..b4ace5f6cc 100644 --- a/src/mem/cache/cache_impl.hh +++ b/src/mem/cache/cache_impl.hh @@ -83,6 +83,16 @@ Cache::Cache(const Params *p) prefetcher->setCache(this); } +template +Cache::~Cache() +{ + delete [] tempBlock->data; + delete tempBlock; + + delete cpuSidePort; + delete memSidePort; +} + template void Cache::regStats()