SL-16992 Crash at LLVivoxVoiceClient::notifyStatusObservers

master
Andrey Kleshchev 2022-03-09 21:11:19 +02:00
parent 4a4c138891
commit b9ac5b8ac4
2 changed files with 15 additions and 6 deletions

View File

@ -96,10 +96,14 @@ LLConversationViewSession::~LLConversationViewSession()
{
mActiveVoiceChannelConnection.disconnect();
if(LLVoiceClient::instanceExists() && mVoiceClientObserver)
{
LLVoiceClient::getInstance()->removeObserver(mVoiceClientObserver);
}
if (mVoiceClientObserver)
{
if (LLVoiceClient::instanceExists())
{
LLVoiceClient::getInstance()->removeObserver(mVoiceClientObserver);
}
delete mVoiceClientObserver;
}
mFlashTimer->unset();
}
@ -255,7 +259,12 @@ BOOL LLConversationViewSession::postBuild()
mIsInActiveVoiceChannel = true;
if(LLVoiceClient::instanceExists())
{
LLNearbyVoiceClientStatusObserver* mVoiceClientObserver = new LLNearbyVoiceClientStatusObserver(this);
if (mVoiceClientObserver)
{
LLVoiceClient::getInstance()->removeObserver(mVoiceClientObserver);
delete mVoiceClientObserver;
}
mVoiceClientObserver = new LLNearbyVoiceClientStatusObserver(this);
LLVoiceClient::getInstance()->addObserver(mVoiceClientObserver);
}
break;

View File

@ -384,7 +384,7 @@ void LLFloaterIMSessionTab::draw()
void LLFloaterIMSessionTab::enableDisableCallBtn()
{
if (LLVoiceClient::instanceExists())
if (LLVoiceClient::instanceExists() && mVoiceButton)
{
mVoiceButton->setEnabled(
mSessionID.notNull()