From d00bf68a19ad62aa38b661f9476febac4001cbdb Mon Sep 17 00:00:00 2001
From: Rye Mutt <rye@alchemyviewer.org>
Date: Thu, 27 Apr 2023 11:42:58 -0400
Subject: [PATCH] Decruft

---
 indra/newview/aldiscordmanager.cpp | 3 ++-
 indra/newview/aldiscordmanager.h   | 1 +
 indra/newview/llappviewer.cpp      | 1 +
 3 files changed, 4 insertions(+), 1 deletion(-)

diff --git a/indra/newview/aldiscordmanager.cpp b/indra/newview/aldiscordmanager.cpp
index c57ee6b2a41..65756792d87 100644
--- a/indra/newview/aldiscordmanager.cpp
+++ b/indra/newview/aldiscordmanager.cpp
@@ -47,7 +47,7 @@ ALDiscordManager::ALDiscordManager()
 {
 	LLAppViewer::instance()->setOnLoginCompletedCallback(boost::bind(&ALDiscordManager::onLoginCompleted, this));
 
-	gSavedPerAccountSettings.getControl("ALDiscordIntegration")->getSignal()->connect([this](LLControlVariable* control, const LLSD& new_val, const LLSD& old_val)
+	mIntegrationSettingConnection = gSavedPerAccountSettings.getControl("ALDiscordIntegration")->getSignal()->connect([this](LLControlVariable* control, const LLSD& new_val, const LLSD& old_val)
 		{
 			bool discord_enabled = new_val;
 			if (discord_enabled)
@@ -68,6 +68,7 @@ ALDiscordManager::ALDiscordManager()
 
 ALDiscordManager::~ALDiscordManager()
 {
+	mIntegrationSettingConnection.disconnect();
 	shutdown();
 }
 
diff --git a/indra/newview/aldiscordmanager.h b/indra/newview/aldiscordmanager.h
index 8ad3c183574..2176a84f4f8 100644
--- a/indra/newview/aldiscordmanager.h
+++ b/indra/newview/aldiscordmanager.h
@@ -49,6 +49,7 @@ class ALDiscordManager final
     void onRegionChange();
     void updateActivity();
 
+    boost::signals2::connection mIntegrationSettingConnection;
     boost::signals2::connection mRegionChangeConnection;
     std::unique_ptr<discord::Core> mDiscord;
     LLHost mCurrentHost;
diff --git a/indra/newview/llappviewer.cpp b/indra/newview/llappviewer.cpp
index e3d0d07825e..24573da5b48 100644
--- a/indra/newview/llappviewer.cpp
+++ b/indra/newview/llappviewer.cpp
@@ -5706,6 +5706,7 @@ void LLAppViewer::handleLoginComplete()
 	}
 
 	mOnLoginCompleted();
+	mOnLoginCompleted.disconnect_all_slots(); // No longer needed
 
 // [SL:KB] - Patch: Build-AssetRecovery | Checked: 2011-11-24 (Catznip-3.2)
 	LLAssetRecoverQueue::recoverIfNeeded();
-- 
GitLab