summaryrefslogtreecommitdiff
path: root/indra/newview/llspeakingindicatormanager.cpp
diff options
context:
space:
mode:
authorakleshchev <117672381+akleshchev@users.noreply.github.com>2022-12-06 04:37:07 +0200
committerGitHub <noreply@github.com>2022-12-06 04:37:07 +0200
commitf7010e46af4205f2f14e07ee5d70c144e44aa7a5 (patch)
tree80dde1e4e60e9d89fc8a4403602b1da08134c8f2 /indra/newview/llspeakingindicatormanager.cpp
parent112446804de888eef73f9f655d7c911da2d0a638 (diff)
SL-18778 Crash at LLVoiceClient::removeObserver (#25)
Diffstat (limited to 'indra/newview/llspeakingindicatormanager.cpp')
-rw-r--r--indra/newview/llspeakingindicatormanager.cpp20
1 files changed, 14 insertions, 6 deletions
diff --git a/indra/newview/llspeakingindicatormanager.cpp b/indra/newview/llspeakingindicatormanager.cpp
index 5ca1d4b4a5..0111d8869c 100644
--- a/indra/newview/llspeakingindicatormanager.cpp
+++ b/indra/newview/llspeakingindicatormanager.cpp
@@ -51,6 +51,10 @@ class SpeakingIndicatorManager : public LLSingleton<SpeakingIndicatorManager>, L
LLSINGLETON(SpeakingIndicatorManager);
~SpeakingIndicatorManager();
LOG_CLASS(SpeakingIndicatorManager);
+
+protected:
+ void cleanupSingleton();
+
public:
/**
@@ -183,12 +187,16 @@ SpeakingIndicatorManager::SpeakingIndicatorManager()
SpeakingIndicatorManager::~SpeakingIndicatorManager()
{
- // Don't use LLVoiceClient::getInstance() here without check
- // singleton MAY have already been destroyed.
- if(LLVoiceClient::instanceExists())
- {
- LLVoiceClient::getInstance()->removeObserver(this);
- }
+}
+
+void SpeakingIndicatorManager::cleanupSingleton()
+{
+ // Don't use LLVoiceClient::getInstance() here without a check,
+ // singleton MAY have already been destroyed.
+ if (LLVoiceClient::instanceExists())
+ {
+ LLVoiceClient::getInstance()->removeObserver(this);
+ }
}
void SpeakingIndicatorManager::sOnCurrentChannelChanged(const LLUUID& /*session_id*/)