From 0b9f92e50f99f2e51e2879f728dc358766ca8d4e Mon Sep 17 00:00:00 2001 From: Seth Alves Date: Mon, 4 Jan 2016 18:01:48 -0800 Subject: [PATCH] fix quat (un)packing --- libraries/octree/src/OctreePacketData.cpp | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/libraries/octree/src/OctreePacketData.cpp b/libraries/octree/src/OctreePacketData.cpp index 909e0889c3..87a2b9ccae 100644 --- a/libraries/octree/src/OctreePacketData.cpp +++ b/libraries/octree/src/OctreePacketData.cpp @@ -403,7 +403,12 @@ bool OctreePacketData::appendValue(const QVector& value) { for (int index = 0; index < value.size(); index++) { destinationBuffer += packOrientationQuatToBytes(destinationBuffer, value[index]); } - success = append(start, destinationBuffer - start); + int quatsSize = destinationBuffer - start; + success = append(start, quatsSize); + if (success) { + _bytesOfValues += quatsSize; + _totalBytesOfValues += quatsSize; + } } return success; @@ -653,16 +658,16 @@ int OctreePacketData::unpackDataFromBytes(const unsigned char *dataBytes, QVecto int OctreePacketData::unpackDataFromBytes(const unsigned char *dataBytes, QVector& result) { uint16_t length; - const unsigned char *start = dataBytes; memcpy(&length, dataBytes, sizeof(uint16_t)); dataBytes += sizeof(length); result.resize(length); + const unsigned char *start = dataBytes; for (int i = 0; i < length; i++) { dataBytes += unpackOrientationQuatFromBytes(dataBytes, result[i]); } - return dataBytes - start; + return (dataBytes - start) + sizeof(uint16_t); } int OctreePacketData::unpackDataFromBytes(const unsigned char* dataBytes, QVector& result) {