From 4573eaebc679989bf916eed18f94d1a69e9a78c2 Mon Sep 17 00:00:00 2001 From: Stephen Birarda Date: Fri, 31 Jan 2014 12:02:24 -0800 Subject: [PATCH] fix multiple avatar parsing in AvatarManager --- assignment-client/src/avatars/AvatarMixer.cpp | 1 - interface/src/avatar/AvatarManager.cpp | 4 ++-- libraries/avatars/src/HandData.cpp | 2 -- 3 files changed, 2 insertions(+), 5 deletions(-) diff --git a/assignment-client/src/avatars/AvatarMixer.cpp b/assignment-client/src/avatars/AvatarMixer.cpp index 014008d35e..6dc63a6dd7 100644 --- a/assignment-client/src/avatars/AvatarMixer.cpp +++ b/assignment-client/src/avatars/AvatarMixer.cpp @@ -70,7 +70,6 @@ void broadcastAvatarData() { QByteArray avatarByteArray; avatarByteArray.append(otherNode->getUUID().toRfc4122()); - AvatarData *nodeData = (AvatarData *)otherNode->getLinkedData(); avatarByteArray.append(nodeData->toByteArray()); diff --git a/interface/src/avatar/AvatarManager.cpp b/interface/src/avatar/AvatarManager.cpp index 57f187603b..ba9dddde07 100644 --- a/interface/src/avatar/AvatarManager.cpp +++ b/interface/src/avatar/AvatarManager.cpp @@ -206,7 +206,7 @@ void AvatarManager::processAvatarMixerDatagram(const QByteArray& datagram, const int bytesRead = numBytesForPacketHeader(datagram); QByteArray dummyAvatarByteArray = byteArrayWithPopluatedHeader(PacketTypeAvatarData); - int numDummyByteArrayHeaderBytes = dummyAvatarByteArray.size(); + int numDummyByteArrayHeaderBytes = dummyAvatarByteArray.size(); // enumerate over all of the avatars in this packet // only add them if mixerWeakPointer points to something (meaning that mixer is still around) @@ -237,7 +237,7 @@ void AvatarManager::processAvatarMixerDatagram(const QByteArray& datagram, const // 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, - NUM_BYTES_RFC4122_UUID + datagram.size() - bytesRead, + datagram.size() - bytesRead, datagram.mid(bytesRead)); // have the matching (or new) avatar parse the data from the packet diff --git a/libraries/avatars/src/HandData.cpp b/libraries/avatars/src/HandData.cpp index cca8ad45cb..5a923eea93 100644 --- a/libraries/avatars/src/HandData.cpp +++ b/libraries/avatars/src/HandData.cpp @@ -160,8 +160,6 @@ int HandData::encodeRemoteData(unsigned char* destinationBuffer) { } int HandData::decodeRemoteData(const QByteArray& dataByteArray) { - QDataStream packetStream(dataByteArray); - const unsigned char* startPosition; const unsigned char* sourceBuffer = startPosition = reinterpret_cast(dataByteArray.data()); unsigned int numHands = *sourceBuffer++;