diff options
author | Andreas Hansson <andreas.hansson@arm.com> | 2012-07-09 12:35:30 -0400 |
---|---|---|
committer | Andreas Hansson <andreas.hansson@arm.com> | 2012-07-09 12:35:30 -0400 |
commit | ff5718f042ecccee694ae79c9386a589fd77e8ef (patch) | |
tree | 2caecba4b46e01b1dc964b62eac700219b6aa382 /src/mem | |
parent | 92eaac07118a620c2c9dd48921eefcb7ca4422a8 (diff) | |
download | gem5-ff5718f042ecccee694ae79c9386a589fd77e8ef.tar.xz |
Fix: Address a few benign memory leaks
This patch is the result of static analysis identifying a number of
memory leaks. The leaks are all benign as they are a result of not
deallocating memory in the desctructor. The fix still has value as it
removes false positives in the static analysis.
Diffstat (limited to 'src/mem')
-rw-r--r-- | src/mem/cache/mshr.cc | 2 | ||||
-rw-r--r-- | src/mem/cache/tags/fa_lru.cc | 8 | ||||
-rw-r--r-- | src/mem/cache/tags/fa_lru.hh | 1 | ||||
-rw-r--r-- | src/mem/cache/tags/iic.cc | 1 | ||||
-rw-r--r-- | src/mem/page_table.cc | 1 |
5 files changed, 13 insertions, 0 deletions
diff --git a/src/mem/cache/mshr.cc b/src/mem/cache/mshr.cc index ab891296f..6fa22c9b4 100644 --- a/src/mem/cache/mshr.cc +++ b/src/mem/cache/mshr.cc @@ -460,4 +460,6 @@ MSHR::print(std::ostream &os, int verbosity, const std::string &prefix) const MSHR::~MSHR() { + delete[] targets; + delete[] deferredTargets; } diff --git a/src/mem/cache/tags/fa_lru.cc b/src/mem/cache/tags/fa_lru.cc index 873883c1b..3a1246ce7 100644 --- a/src/mem/cache/tags/fa_lru.cc +++ b/src/mem/cache/tags/fa_lru.cc @@ -98,6 +98,14 @@ FALRU::FALRU(unsigned _blkSize, unsigned _size, unsigned hit_latency) //assert(check()); } +FALRU::~FALRU() +{ + if (numCaches) + delete[] cacheBoundaries; + + delete[] blks; +} + void FALRU::regStats(const string &name) { diff --git a/src/mem/cache/tags/fa_lru.hh b/src/mem/cache/tags/fa_lru.hh index 78f9ce1b4..fa1f49a42 100644 --- a/src/mem/cache/tags/fa_lru.hh +++ b/src/mem/cache/tags/fa_lru.hh @@ -156,6 +156,7 @@ public: * @param hit_latency The hit latency of the cache. */ FALRU(unsigned blkSize, unsigned size, unsigned hit_latency); + ~FALRU(); /** * Register the stats for this object. diff --git a/src/mem/cache/tags/iic.cc b/src/mem/cache/tags/iic.cc index 260b89194..d6ddf04a6 100644 --- a/src/mem/cache/tags/iic.cc +++ b/src/mem/cache/tags/iic.cc @@ -160,6 +160,7 @@ IIC::~IIC() delete [] dataStore; delete [] tagStore; delete [] sets; + delete [] dataBlks; } /* register cache stats */ diff --git a/src/mem/page_table.cc b/src/mem/page_table.cc index f47e73c74..be862e429 100644 --- a/src/mem/page_table.cc +++ b/src/mem/page_table.cc @@ -228,6 +228,7 @@ PageTable::unserialize(Checkpoint *cp, const std::string §ion) entry = new TheISA::TlbEntry(); entry->unserialize(cp, csprintf("%s.Entry%d", name(), i)); pTable[vaddr] = *entry; + delete entry; ++i; } } |