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
This commit is contained in:
Steve Reinhardt 2008-03-24 01:08:02 -04:00
parent 93ab43288a
commit 623dd7ed3a
2 changed files with 9 additions and 2 deletions

View file

@ -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

View file

@ -83,7 +83,6 @@ SimpleTimingPort::recvTiming(PacketPtr pkt)
assert(pkt->isResponse());
schedSendTiming(pkt, curTick + latency);
} else {
delete pkt->req;
delete pkt;
}