From 6fddbeb3973c3cd2135ba101afc13329a8c9fe49 Mon Sep 17 00:00:00 2001 From: Andrey Kleshchev Date: Thu, 4 Jun 2020 22:43:55 +0300 Subject: SL-12748 Blocked username displays old name after name change --- indra/llmessage/llavatarnamecache.cpp | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) (limited to 'indra/llmessage/llavatarnamecache.cpp') diff --git a/indra/llmessage/llavatarnamecache.cpp b/indra/llmessage/llavatarnamecache.cpp index 6a287f0cc5..6ada12962c 100644 --- a/indra/llmessage/llavatarnamecache.cpp +++ b/indra/llmessage/llavatarnamecache.cpp @@ -285,12 +285,27 @@ void LLAvatarNameCache::processName(const LLUUID& agent_id, const LLAvatarName& return; } + bool updated_account = true; // assume obsolete value for new arrivals by default + + std::map::iterator it = mCache.find(agent_id); + if (it != mCache.end() + && (*it).second.getAccountName() == av_name.getAccountName()) + { + updated_account = false; + } + // Add to the cache mCache[agent_id] = av_name; // Suppress request from the queue mPendingQueue.erase(agent_id); + // notify mute list about changes + if (updated_account && mAccountNameChangedCallback) + { + mAccountNameChangedCallback(agent_id, av_name); + } + // Signal everyone waiting on this name signal_map_t::iterator sig_it = mSignalMap.find(agent_id); if (sig_it != mSignalMap.end()) @@ -303,6 +318,8 @@ void LLAvatarNameCache::processName(const LLUUID& agent_id, const LLAvatarName& delete signal; signal = NULL; } + + } void LLAvatarNameCache::requestNamesViaCapability() -- cgit v1.2.3 From fc63aa74247b9a62871cf2ee929457d68bfdf63d Mon Sep 17 00:00:00 2001 From: Andrey Kleshchev Date: Fri, 9 Oct 2020 21:53:53 +0300 Subject: SL-14078 No point in verifying display name cap each frame Convoluted due to multiple workarounds. Might be a good idea to spend some time refactoring this, but for now just trottled checks. --- indra/llmessage/llavatarnamecache.cpp | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'indra/llmessage/llavatarnamecache.cpp') diff --git a/indra/llmessage/llavatarnamecache.cpp b/indra/llmessage/llavatarnamecache.cpp index 7380df041d..756fb940aa 100644 --- a/indra/llmessage/llavatarnamecache.cpp +++ b/indra/llmessage/llavatarnamecache.cpp @@ -549,6 +549,12 @@ void LLAvatarNameCache::idle() eraseUnrefreshed(); } +//static +bool LLAvatarNameCache::hasWork() +{ + return sRequestTimer.hasExpired(); +} + bool LLAvatarNameCache::isRequestPending(const LLUUID& agent_id) { bool isPending = false; -- cgit v1.2.3 From 0a2b748705c6e74eaff814d48b8b110c1364b45f Mon Sep 17 00:00:00 2001 From: Andrey Kleshchev Date: Mon, 12 Oct 2020 18:35:43 +0300 Subject: SL-14078 No point in verifying display name cap each frame #2 --- indra/llmessage/llavatarnamecache.cpp | 6 ------ 1 file changed, 6 deletions(-) (limited to 'indra/llmessage/llavatarnamecache.cpp') diff --git a/indra/llmessage/llavatarnamecache.cpp b/indra/llmessage/llavatarnamecache.cpp index 756fb940aa..7380df041d 100644 --- a/indra/llmessage/llavatarnamecache.cpp +++ b/indra/llmessage/llavatarnamecache.cpp @@ -549,12 +549,6 @@ void LLAvatarNameCache::idle() eraseUnrefreshed(); } -//static -bool LLAvatarNameCache::hasWork() -{ - return sRequestTimer.hasExpired(); -} - bool LLAvatarNameCache::isRequestPending(const LLUUID& agent_id) { bool isPending = false; -- cgit v1.2.3