From 57ba2c5cd6c9c807e46692f3715bf8611c751c39 Mon Sep 17 00:00:00 2001 From: Seth Alves Date: Thu, 6 Jul 2017 18:16:41 -0700 Subject: [PATCH] add invalidateJointIndicesCache method --- .../avatars-renderer/src/avatars-renderer/Avatar.cpp | 11 +++++++---- .../avatars-renderer/src/avatars-renderer/Avatar.h | 1 + 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/libraries/avatars-renderer/src/avatars-renderer/Avatar.cpp b/libraries/avatars-renderer/src/avatars-renderer/Avatar.cpp index fc604809dc..2206d67c2c 100644 --- a/libraries/avatars-renderer/src/avatars-renderer/Avatar.cpp +++ b/libraries/avatars-renderer/src/avatars-renderer/Avatar.cpp @@ -1020,6 +1020,11 @@ void Avatar::cacheJoints() const { } } +void Avatar::invalidateJointIndicesCache() const { + QWriteLocker writeLock(&_jointIndicesCacheLock); + _jointsCached = false; +} + int Avatar::getJointIndex(const QString& name) const { int result = getFauxJointIndex(name); if (result != -1) { @@ -1090,10 +1095,8 @@ void Avatar::setSkeletonModelURL(const QUrl& skeletonModelURL) { } void Avatar::setModelURLFinished(bool success) { - { - QWriteLocker writeLock(&_jointIndicesCacheLock); - _jointsCached = false; - } + invalidateJointIndicesCache(); + if (!success && _skeletonModelURL != AvatarData::defaultFullAvatarModelUrl()) { const int MAX_SKELETON_DOWNLOAD_ATTEMPTS = 4; // NOTE: we don't want to be as generous as ResourceCache is, we only want 4 attempts if (_skeletonModel->getResourceDownloadAttemptsRemaining() <= 0 || diff --git a/libraries/avatars-renderer/src/avatars-renderer/Avatar.h b/libraries/avatars-renderer/src/avatars-renderer/Avatar.h index f19feab9c6..2069e36998 100644 --- a/libraries/avatars-renderer/src/avatars-renderer/Avatar.h +++ b/libraries/avatars-renderer/src/avatars-renderer/Avatar.h @@ -269,6 +269,7 @@ protected: SkeletonModelPointer _skeletonModel; void cacheJoints() const; + void invalidateJointIndicesCache() const; mutable QHash _jointIndicesCache; mutable QReadWriteLock _jointIndicesCacheLock; mutable bool _jointsCached { false };