From 7cdce09bda9ff18bd02e22ddbe1b3fe95b204192 Mon Sep 17 00:00:00 2001 From: Erik Kundiman Date: Tue, 29 Jul 2025 19:37:35 +0800 Subject: Cache bool setting retrievals in updateDiscordActivity As suggested by Andrey Kleschev. getBOOL and getF32 are expensive, so using `static LLCachedControl<>` is the way to do it in llappviewer.cpp. --- indra/newview/llappviewer.cpp | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/indra/newview/llappviewer.cpp b/indra/newview/llappviewer.cpp index b5175fbf71..fee2a742f5 100644 --- a/indra/newview/llappviewer.cpp +++ b/indra/newview/llappviewer.cpp @@ -5994,7 +5994,8 @@ void LLAppViewer::updateDiscordActivity() return; } - if (gSavedSettings.getBOOL("ShowDiscordActivityDetails")) + static LLCachedControl show_details(gSavedSettings, "ShowDiscordActivityDetails", false); + if (show_details) { LLAvatarName av_name; LLAvatarNameCache::get(gAgent.getID(), &av_name); @@ -6005,7 +6006,8 @@ void LLAppViewer::updateDiscordActivity() activity.SetDetails(name); } - if (gSavedSettings.getBOOL("ShowDiscordActivityState")) + static LLCachedControl show_state(gSavedSettings, "ShowDiscordActivityState", false); + if (show_state) { auto agent_pos_region = gAgent.getPositionAgent(); S32 pos_x = S32(agent_pos_region.mV[VX] + 0.5f); @@ -6033,7 +6035,8 @@ void LLAppViewer::updateDiscordActivity() uuid_vec_t chat_radius_uuids, near_me_uuids; auto position = gAgent.getPositionGlobal(); world->getAvatars(&chat_radius_uuids, NULL, position, CHAT_NORMAL_RADIUS); - world->getAvatars(&near_me_uuids, NULL, position, gSavedSettings.getF32("MPVNearMeRange")); + static LLCachedControl range(gSavedSettings, "MPVNearMeRange", 4096.0f); + world->getAvatars(&near_me_uuids, NULL, position, range); discordpp::ActivityParty party; party.SetId(location); party.SetCurrentSize(chat_radius_uuids.size()); -- cgit v1.2.3