From da4d270695610de8f8a49c33cc5c74aca06234bf Mon Sep 17 00:00:00 2001
From: andreykproductengine <andreykproductengine@lindenlab.com>
Date: Tue, 7 Aug 2018 17:23:27 +0300
Subject: [PATCH] MAINT-8959 Fixed some pointers not being reset

---
 indra/newview/llvoicechannel.cpp | 14 +++++++++++---
 1 file changed, 11 insertions(+), 3 deletions(-)

diff --git a/indra/newview/llvoicechannel.cpp b/indra/newview/llvoicechannel.cpp
index c58e98b3fb4..f971554c9de 100644
--- a/indra/newview/llvoicechannel.cpp
+++ b/indra/newview/llvoicechannel.cpp
@@ -74,10 +74,18 @@ LLVoiceChannel::LLVoiceChannel(const LLUUID& session_id, const std::string& sess
 
 LLVoiceChannel::~LLVoiceChannel()
 {
-	// Must check instance exists here, the singleton MAY have already been destroyed.
-	if(LLVoiceClient::instanceExists())
+	if (sSuspendedVoiceChannel == this)
 	{
-		LLVoiceClient::getInstance()->removeObserver(this);
+		sSuspendedVoiceChannel = NULL;
+	}
+	if (sCurrentVoiceChannel == this)
+	{
+		sCurrentVoiceChannel = NULL;
+		// Must check instance exists here, the singleton MAY have already been destroyed.
+		if(LLVoiceClient::instanceExists())
+		{
+			LLVoiceClient::getInstance()->removeObserver(this);
+		}
 	}
 	
 	sVoiceChannelMap.erase(mSessionID);
-- 
GitLab