summaryrefslogtreecommitdiff
path: root/src/mem/packet.hh
diff options
context:
space:
mode:
Diffstat (limited to 'src/mem/packet.hh')
-rw-r--r--src/mem/packet.hh10
1 files changed, 9 insertions, 1 deletions
diff --git a/src/mem/packet.hh b/src/mem/packet.hh
index 7aad9de98..a278a3945 100644
--- a/src/mem/packet.hh
+++ b/src/mem/packet.hh
@@ -455,7 +455,15 @@ class Packet : public FastAlloc, public Printable
/** Destructor. */
~Packet()
- { if (staticData || dynamicData) deleteData(); }
+ {
+ // If this is a request packet for which there's no response,
+ // delete the request object here, since the requester will
+ // never get the chance.
+ if (req && isRequest() && !needsResponse())
+ delete req;
+ if (staticData || dynamicData)
+ deleteData();
+ }
/** Reinitialize packet address and size from the associated
* Request object, and reset other fields that may have been