From 623dd7ed3a66e71e241dc8365c079cb5b42fa918 Mon Sep 17 00:00:00 2001 From: Steve Reinhardt Date: Mon, 24 Mar 2008 01:08:02 -0400 Subject: Delete the Request for a no-response Packet when the Packet is deleted, since the requester can't possibly do it. --HG-- extra : convert_revision : 8571b144ecb3c70efc06d09faa8b3161fb58352d --- src/mem/packet.hh | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'src/mem/packet.hh') 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 -- cgit v1.2.3