From 35c8a60f3bea3c6c688bfc1aaa347209000968ad Mon Sep 17 00:00:00 2001 From: Stephen Birarda Date: Fri, 17 Jul 2015 15:57:52 -0700 Subject: [PATCH] seek to correct place for bulk avatar data --- libraries/avatars/src/AvatarHashMap.cpp | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/libraries/avatars/src/AvatarHashMap.cpp b/libraries/avatars/src/AvatarHashMap.cpp index 2540693088..0c84a0c379 100644 --- a/libraries/avatars/src/AvatarHashMap.cpp +++ b/libraries/avatars/src/AvatarHashMap.cpp @@ -54,6 +54,8 @@ void AvatarHashMap::processAvatarDataPacket(QSharedPointer packet, Sha // only add them if mixerWeakPointer points to something (meaning that mixer is still around) while (packet->bytesLeftToRead()) { QUuid sessionUUID = QUuid::fromRfc4122(packet->read(NUM_BYTES_RFC4122_UUID)); + + int positionBeforeRead = packet->pos(); QByteArray byteArray = packet->read(packet->bytesLeftToRead()); @@ -62,15 +64,15 @@ void AvatarHashMap::processAvatarDataPacket(QSharedPointer packet, Sha if (!avatar) { avatar = addAvatar(sessionUUID, sendingNode); } - + // have the matching (or new) avatar parse the data from the packet int bytesRead = avatar->parseDataFromBuffer(byteArray); - packet->seek(packet->pos() + bytesRead); + packet->seek(positionBeforeRead + bytesRead); } else { // create a dummy AvatarData class to throw this data on the ground AvatarData dummyData; int bytesRead = dummyData.parseDataFromBuffer(byteArray); - packet->seek(packet->pos() + bytesRead); + packet->seek(positionBeforeRead + bytesRead); } } }