From 2cc6d2218144cb5ceac5e36c15b1c46e59ea67c5 Mon Sep 17 00:00:00 2001 From: Stephen Birarda Date: Fri, 31 Jan 2014 12:44:09 -0800 Subject: [PATCH] fix push bytesRead when creating dummy Avatar packets, closes #1794 --- assignment-client/src/avatars/AvatarMixer.cpp | 2 +- interface/src/avatar/AvatarManager.cpp | 11 +++++------ 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/assignment-client/src/avatars/AvatarMixer.cpp b/assignment-client/src/avatars/AvatarMixer.cpp index 6dc63a6dd7..358e507fc4 100644 --- a/assignment-client/src/avatars/AvatarMixer.cpp +++ b/assignment-client/src/avatars/AvatarMixer.cpp @@ -70,7 +70,7 @@ void broadcastAvatarData() { QByteArray avatarByteArray; avatarByteArray.append(otherNode->getUUID().toRfc4122()); - AvatarData *nodeData = (AvatarData *)otherNode->getLinkedData(); + AvatarData* nodeData = (AvatarData*) otherNode->getLinkedData(); avatarByteArray.append(nodeData->toByteArray()); if (avatarByteArray.size() + mixedAvatarByteArray.size() > MAX_PACKET_SIZE) { diff --git a/interface/src/avatar/AvatarManager.cpp b/interface/src/avatar/AvatarManager.cpp index ba9dddde07..24431cf3f3 100644 --- a/interface/src/avatar/AvatarManager.cpp +++ b/interface/src/avatar/AvatarManager.cpp @@ -206,7 +206,8 @@ void AvatarManager::processAvatarMixerDatagram(const QByteArray& datagram, const int bytesRead = numBytesForPacketHeader(datagram); QByteArray dummyAvatarByteArray = byteArrayWithPopluatedHeader(PacketTypeAvatarData); - int numDummyByteArrayHeaderBytes = dummyAvatarByteArray.size(); + int numDummyHeaderBytes = dummyAvatarByteArray.size(); + int numDummyHeaderBytesWithoutUUID = numDummyHeaderBytes - NUM_BYTES_RFC4122_UUID; // enumerate over all of the avatars in this packet // only add them if mixerWeakPointer points to something (meaning that mixer is still around) @@ -233,15 +234,13 @@ void AvatarManager::processAvatarMixerDatagram(const QByteArray& datagram, const } // copy the rest of the packet to the avatarData holder so we can read the next Avatar from there - dummyAvatarByteArray.resize(numDummyByteArrayHeaderBytes); + dummyAvatarByteArray.resize(numDummyHeaderBytesWithoutUUID); // make this Avatar's UUID the UUID in the packet and tack the remaining data onto the end - dummyAvatarByteArray.replace(numDummyByteArrayHeaderBytes - NUM_BYTES_RFC4122_UUID, - datagram.size() - bytesRead, - datagram.mid(bytesRead)); + dummyAvatarByteArray.append(datagram.mid(bytesRead)); // have the matching (or new) avatar parse the data from the packet - bytesRead += matchingAvatar->parseData(dummyAvatarByteArray); + bytesRead += matchingAvatar->parseData(dummyAvatarByteArray) - numDummyHeaderBytesWithoutUUID; } }