summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/mem/simple_mem.cc8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/mem/simple_mem.cc b/src/mem/simple_mem.cc
index 2549cbe39..b2d518dc7 100644
--- a/src/mem/simple_mem.cc
+++ b/src/mem/simple_mem.cc
@@ -80,9 +80,13 @@ SimpleMemory::recvFunctional(PacketPtr pkt)
functionalAccess(pkt);
+ bool done = false;
+ auto p = packetQueue.begin();
// potentially update the packets in our packet queue as well
- for (auto i = packetQueue.begin(); i != packetQueue.end(); ++i)
- pkt->checkFunctional(i->pkt);
+ while (!done && p != packetQueue.end()) {
+ done = pkt->checkFunctional(p->pkt);
+ ++p;
+ }
pkt->popLabel();
}