Ruby: remove reference to g_system_ptr from class Message
[gem5.git] / src / mem / simple_mem.cc
index e78b5792895d9ddad61129f3f8b651a7144d95d2..7dd0fd1011d55d98863d67749534498faee18e9d 100644 (file)
@@ -94,10 +94,16 @@ SimpleMemory::doFunctionalAccess(PacketPtr pkt)
 bool
 SimpleMemory::recvTimingReq(PacketPtr pkt)
 {
+    /// @todo temporary hack to deal with memory corruption issues until
+    /// 4-phase transactions are complete
+    for (int x = 0; x < pendingDelete.size(); x++)
+        delete pendingDelete[x];
+    pendingDelete.clear();
+
     if (pkt->memInhibitAsserted()) {
         // snooper will supply based on copy of packet
         // still target's responsibility to delete packet
-        delete pkt;
+        pendingDelete.push_back(pkt);
         return true;
     }
 
@@ -148,7 +154,7 @@ SimpleMemory::recvTimingReq(PacketPtr pkt)
         assert(pkt->isResponse());
         port.schedTimingResp(pkt, curTick() + latency);
     } else {
-        delete pkt;
+        pendingDelete.push_back(pkt);
     }
 
     return true;