From c77310019db567fd453449c874f36e3e73e326bd Mon Sep 17 00:00:00 2001 From: Atlante45 Date: Thu, 9 Jul 2015 14:03:32 -0700 Subject: [PATCH 1/3] Some .get() cleanup --- assignment-client/src/audio/AudioMixer.cpp | 2 -- assignment-client/src/entities/EntityServer.cpp | 2 +- libraries/octree/src/OctreeEditPacketSender.cpp | 4 ++-- 3 files changed, 3 insertions(+), 5 deletions(-) diff --git a/assignment-client/src/audio/AudioMixer.cpp b/assignment-client/src/audio/AudioMixer.cpp index bb58bb0f78..e81f4c66f8 100644 --- a/assignment-client/src/audio/AudioMixer.cpp +++ b/assignment-client/src/audio/AudioMixer.cpp @@ -463,8 +463,6 @@ int AudioMixer::prepareMixForListeningNode(Node* node) { } void AudioMixer::sendAudioEnvironmentPacket(SharedNodePointer node) { - static char clientEnvBuffer[MAX_PACKET_SIZE]; - // Send stream properties bool hasReverb = false; float reverbTime, wetLevel; diff --git a/assignment-client/src/entities/EntityServer.cpp b/assignment-client/src/entities/EntityServer.cpp index b928adde53..08907380fb 100644 --- a/assignment-client/src/entities/EntityServer.cpp +++ b/assignment-client/src/entities/EntityServer.cpp @@ -96,7 +96,7 @@ int EntityServer::sendSpecialPackets(const SharedNodePointer& node, OctreeQueryN auto specialPacket = tree->encodeEntitiesDeletedSince(queryNode->getSequenceNumber(), deletedEntitiesSentAt, hasMoreToSend); - queryNode->packetSent(*specialPacket.get()); + queryNode->packetSent(*specialPacket); totalBytes += specialPacket->getSizeWithHeader(); packetsSent++; diff --git a/libraries/octree/src/OctreeEditPacketSender.cpp b/libraries/octree/src/OctreeEditPacketSender.cpp index 4151f19821..41b8b7bca6 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.get()); + _sentPacketHistories[nodeUUID].packetSent(sequence, *packet); 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.get()); + auto packetCopy = NLPacket::createCopy(*packet); queuePacketToNode(nodeUUID, std::move(packetCopy)); } } From a2a60f253c090b6cbc3547d9c05e4ee2199da333 Mon Sep 17 00:00:00 2001 From: Atlante45 Date: Thu, 9 Jul 2015 14:19:47 -0700 Subject: [PATCH 2/3] Fail with packet size in constructor --- libraries/networking/src/NLPacket.cpp | 10 ---------- libraries/networking/src/Packet.cpp | 18 +++++++----------- 2 files changed, 7 insertions(+), 21 deletions(-) diff --git a/libraries/networking/src/NLPacket.cpp b/libraries/networking/src/NLPacket.cpp index 1b1ac50eda..c3b09439ba 100644 --- a/libraries/networking/src/NLPacket.cpp +++ b/libraries/networking/src/NLPacket.cpp @@ -30,16 +30,6 @@ qint64 NLPacket::localHeaderSize() const { } std::unique_ptr NLPacket::create(PacketType::Value type, qint64 size) { - auto maxPayload = maxPayloadSize(type); - if (size == -1) { - // default size of -1, means biggest packet possible - size = maxPayload; - } - - // Fail with invalid size - Q_ASSERT(size >= 0 || size < maxPayload); - - // allocate memory return std::unique_ptr(new NLPacket(type, size)); } diff --git a/libraries/networking/src/Packet.cpp b/libraries/networking/src/Packet.cpp index 876cd91962..a5ab9d1716 100644 --- a/libraries/networking/src/Packet.cpp +++ b/libraries/networking/src/Packet.cpp @@ -24,16 +24,6 @@ qint64 Packet::maxPayloadSize(PacketType::Value type) { } std::unique_ptr Packet::create(PacketType::Value type, qint64 size) { - auto maxPayload = maxPayloadSize(type); - if (size == -1) { - // default size of -1, means biggest packet possible - size = maxPayload; - } - - // Fail with invalid size - Q_ASSERT(size >= 0 || size < maxPayload); - - // allocate memory return std::unique_ptr(new Packet(type, size)); } @@ -55,8 +45,14 @@ Packet::Packet(PacketType::Value type, qint64 size) : _packet(new char(_packetSize)), _payloadStart(_packet.get() + localHeaderSize(_type)), _capacity(size) { + auto maxPayload = maxPayloadSize(type); + if (size == -1) { + // default size of -1, means biggest packet possible + size = maxPayload; + } + // Sanity check - Q_ASSERT(size <= maxPayloadSize(type)); + Q_ASSERT(size >= 0 || size < maxPayload); // copy packet type and version in header writePacketTypeAndVersion(type); From aaafa7acd28e870102f425640996ba91dd285092 Mon Sep 17 00:00:00 2001 From: Atlante45 Date: Thu, 9 Jul 2015 14:20:04 -0700 Subject: [PATCH 3/3] Copy _type in assignment operators --- libraries/networking/src/Packet.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/libraries/networking/src/Packet.cpp b/libraries/networking/src/Packet.cpp index a5ab9d1716..ca1c66f4ca 100644 --- a/libraries/networking/src/Packet.cpp +++ b/libraries/networking/src/Packet.cpp @@ -68,6 +68,8 @@ Packet::Packet(const Packet& other) { } Packet& Packet::operator=(const Packet& other) { + _type = other._type; + _packetSize = other._packetSize; _packet = std::unique_ptr(new char(_packetSize)); memcpy(_packet.get(), other._packet.get(), _packetSize); @@ -85,6 +87,8 @@ Packet::Packet(Packet&& other) { } Packet& Packet::operator=(Packet&& other) { + _type = other._type; + _packetSize = other._packetSize; _packet = std::move(other._packet);