From 121d3a77ad6398aa4146d4ba0770965d4ef55a64 Mon Sep 17 00:00:00 2001 From: Ryan Huffman Date: Wed, 19 Aug 2015 11:27:31 -0700 Subject: [PATCH] Fix iterator usage in SendQueue --- libraries/networking/src/udt/SendQueue.cpp | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/libraries/networking/src/udt/SendQueue.cpp b/libraries/networking/src/udt/SendQueue.cpp index 0e97e9a1e0..cfb969a186 100644 --- a/libraries/networking/src/udt/SendQueue.cpp +++ b/libraries/networking/src/udt/SendQueue.cpp @@ -71,20 +71,21 @@ void SendQueue::queuePacketList(std::unique_ptr packetList) { auto messageNumber = getNextMessageNumber(); if (packetList->_packets.size() == 1) { - auto packet = packetList->_packets.front().get(); + auto& packet = packetList->_packets.front(); packet->setPacketPosition(Packet::PacketPosition::ONLY); packet->writeMessageNumber(messageNumber); } else { bool haveMarkedFirstPacket = false; auto end = packetList->_packets.end(); + auto lastElement = --packetList->_packets.end(); for (auto it = packetList->_packets.begin(); it != end; ++it) { - auto packet = it->get(); + auto& packet = *it; if (!haveMarkedFirstPacket) { packet->setPacketPosition(Packet::PacketPosition::FIRST); haveMarkedFirstPacket = true; - } else if (packetList->_packets.empty()) { + } else if (it == lastElement) { packet->setPacketPosition(Packet::PacketPosition::LAST); } else { packet->setPacketPosition(Packet::PacketPosition::MIDDLE);