mirror of
https://github.com/overte-org/overte.git
synced 2025-08-09 15:29:32 +02:00
Fix iterator usage in SendQueue
This commit is contained in:
parent
fc29297d87
commit
121d3a77ad
1 changed files with 4 additions and 3 deletions
|
@ -71,20 +71,21 @@ void SendQueue::queuePacketList(std::unique_ptr<PacketList> packetList) {
|
||||||
auto messageNumber = getNextMessageNumber();
|
auto messageNumber = getNextMessageNumber();
|
||||||
|
|
||||||
if (packetList->_packets.size() == 1) {
|
if (packetList->_packets.size() == 1) {
|
||||||
auto packet = packetList->_packets.front().get();
|
auto& packet = packetList->_packets.front();
|
||||||
|
|
||||||
packet->setPacketPosition(Packet::PacketPosition::ONLY);
|
packet->setPacketPosition(Packet::PacketPosition::ONLY);
|
||||||
packet->writeMessageNumber(messageNumber);
|
packet->writeMessageNumber(messageNumber);
|
||||||
} else {
|
} else {
|
||||||
bool haveMarkedFirstPacket = false;
|
bool haveMarkedFirstPacket = false;
|
||||||
auto end = packetList->_packets.end();
|
auto end = packetList->_packets.end();
|
||||||
|
auto lastElement = --packetList->_packets.end();
|
||||||
for (auto it = packetList->_packets.begin(); it != end; ++it) {
|
for (auto it = packetList->_packets.begin(); it != end; ++it) {
|
||||||
auto packet = it->get();
|
auto& packet = *it;
|
||||||
|
|
||||||
if (!haveMarkedFirstPacket) {
|
if (!haveMarkedFirstPacket) {
|
||||||
packet->setPacketPosition(Packet::PacketPosition::FIRST);
|
packet->setPacketPosition(Packet::PacketPosition::FIRST);
|
||||||
haveMarkedFirstPacket = true;
|
haveMarkedFirstPacket = true;
|
||||||
} else if (packetList->_packets.empty()) {
|
} else if (it == lastElement) {
|
||||||
packet->setPacketPosition(Packet::PacketPosition::LAST);
|
packet->setPacketPosition(Packet::PacketPosition::LAST);
|
||||||
} else {
|
} else {
|
||||||
packet->setPacketPosition(Packet::PacketPosition::MIDDLE);
|
packet->setPacketPosition(Packet::PacketPosition::MIDDLE);
|
||||||
|
|
Loading…
Reference in a new issue