summaryrefslogtreecommitdiff
path: root/src/cpu/inorder/resources/cache_unit.hh
diff options
context:
space:
mode:
authorKorey Sewell <ksewell@umich.edu>2011-02-18 14:29:17 -0500
committerKorey Sewell <ksewell@umich.edu>2011-02-18 14:29:17 -0500
commit8b4b4a1ba50a6f422ab75ccf0fb09568f1805ce6 (patch)
treeb88a94fed084c2556e94b326e2a4e3819d76d6e2 /src/cpu/inorder/resources/cache_unit.hh
parent72b5233112a41cb879ca63866f9f0ecf8638dbfb (diff)
downloadgem5-8b4b4a1ba50a6f422ab75ccf0fb09568f1805ce6.tar.xz
inorder: fix cache/fetch unit memory leaks
--- need to delete the cache request's data on clearRequest() now that we are recycling requests --- fetch unit needs to deallocate the fetch buffer blocks when they are replaced or squashed.
Diffstat (limited to 'src/cpu/inorder/resources/cache_unit.hh')
-rw-r--r--src/cpu/inorder/resources/cache_unit.hh4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/cpu/inorder/resources/cache_unit.hh b/src/cpu/inorder/resources/cache_unit.hh
index b5effb2c3..097b6fa7a 100644
--- a/src/cpu/inorder/resources/cache_unit.hh
+++ b/src/cpu/inorder/resources/cache_unit.hh
@@ -249,6 +249,10 @@ class CacheRequest : public ResourceRequest
void clearRequest()
{
+ if (reqData && !splitAccess) {
+ delete [] reqData;
+ }
+
memReq = NULL;
reqData = NULL;
dataPkt = NULL;