From c903d284bb66c6e60d0c457077b003cdd816ee78 Mon Sep 17 00:00:00 2001 From: Stephen Birarda Date: Thu, 9 Jul 2015 11:31:57 -0700 Subject: [PATCH] fix for arguments that are now const NLPacket& --- libraries/networking/src/SentPacketHistory.cpp | 10 +++++++--- libraries/networking/src/SentPacketHistory.h | 2 +- libraries/octree/src/OctreeEditPacketSender.cpp | 8 ++++---- 3 files changed, 12 insertions(+), 8 deletions(-) diff --git a/libraries/networking/src/SentPacketHistory.cpp b/libraries/networking/src/SentPacketHistory.cpp index 68bd5f1c67..bea144e6aa 100644 --- a/libraries/networking/src/SentPacketHistory.cpp +++ b/libraries/networking/src/SentPacketHistory.cpp @@ -38,7 +38,7 @@ void SentPacketHistory::packetSent(uint16_t sequenceNumber, const NLPacket& pack _sentPackets.insert(NLPacket::createCopy(packet)); } -const NLPacket& SentPacketHistory::getPacket(uint16_t sequenceNumber) const { +const NLPacket* SentPacketHistory::getPacket(uint16_t sequenceNumber) const { const int UINT16_RANGE = std::numeric_limits::max() + 1; @@ -48,6 +48,10 @@ const NLPacket& SentPacketHistory::getPacket(uint16_t sequenceNumber) const { if (seqDiff < 0) { seqDiff += UINT16_RANGE; } - - return *_sentPackets.get(seqDiff)->get(); + auto packet = _sentPackets.get(seqDiff); + if (packet) { + return packet->get(); + } else { + return nullptr; + } } diff --git a/libraries/networking/src/SentPacketHistory.h b/libraries/networking/src/SentPacketHistory.h index e9ba58d4ef..2971df12f5 100644 --- a/libraries/networking/src/SentPacketHistory.h +++ b/libraries/networking/src/SentPacketHistory.h @@ -25,7 +25,7 @@ public: SentPacketHistory(int size = MAX_REASONABLE_SEQUENCE_GAP); void packetSent(uint16_t sequenceNumber, const NLPacket& packet); - const NLPacket& getPacket(uint16_t sequenceNumber) const; + const NLPacket* getPacket(uint16_t sequenceNumber) const; private: RingBufferHistory> _sentPackets; // circular buffer diff --git a/libraries/octree/src/OctreeEditPacketSender.cpp b/libraries/octree/src/OctreeEditPacketSender.cpp index 86d25af759..4151f19821 100644 --- a/libraries/octree/src/OctreeEditPacketSender.cpp +++ b/libraries/octree/src/OctreeEditPacketSender.cpp @@ -108,7 +108,7 @@ void OctreeEditPacketSender::queuePacketToNode(const QUuid& nodeUUID, std::uniqu } // add packet to history - _sentPacketHistories[nodeUUID].packetSent(sequence, packet); + _sentPacketHistories[nodeUUID].packetSent(sequence, *packet.get()); queuePacketForSending(node, std::move(packet)); } @@ -186,7 +186,7 @@ void OctreeEditPacketSender::queuePacketToNodes(std::unique_ptr packet if (isMyJurisdiction) { // make a copy of this packet for this node and queue - auto packetCopy = NLPacket::createCopy(packet); + auto packetCopy = NLPacket::createCopy(*packet.get()); queuePacketToNode(nodeUUID, std::move(packetCopy)); } } @@ -362,10 +362,10 @@ void OctreeEditPacketSender::processNackPacket(const QByteArray& packet) { dataAt += sizeof(unsigned short int); // retrieve packet from history - const std::unique_ptr& packet = sentPacketHistory.getPacket(sequenceNumber); + const NLPacket* packet = sentPacketHistory.getPacket(sequenceNumber); if (packet) { const SharedNodePointer& node = DependencyManager::get()->nodeWithUUID(sendingNodeUUID); - queuePacketForSending(node, NLPacket::createCopy(packet)); + queuePacketForSending(node, NLPacket::createCopy(*packet)); } } }