summaryrefslogtreecommitdiff
path: root/indra/newview
diff options
context:
space:
mode:
authorAndrey Kleshchev <117672381+akleshchev@users.noreply.github.com>2026-05-19 22:17:00 +0300
committerAndrey Kleshchev <117672381+akleshchev@users.noreply.github.com>2026-05-20 23:17:01 +0300
commita1d80779bf5aee5b7d2de5e924cfa60804f1e180 (patch)
tree160c8076a1c424b1203c382680e3b8b3a2af6fe8 /indra/newview
parentacde43cce9700f5c5a50b03b7d96c1db18734e7e (diff)
#4823 WebRTC crashes
Diffstat (limited to 'indra/newview')
-rw-r--r--indra/newview/llvoicewebrtc.cpp32
1 files changed, 28 insertions, 4 deletions
diff --git a/indra/newview/llvoicewebrtc.cpp b/indra/newview/llvoicewebrtc.cpp
index 3b98ca49ef..30803cdc7e 100644
--- a/indra/newview/llvoicewebrtc.cpp
+++ b/indra/newview/llvoicewebrtc.cpp
@@ -1678,6 +1678,10 @@ void LLWebRTCVoiceClient::setVoiceVolume(F32 volume)
void LLWebRTCVoiceClient::predSetSpeakerVolume(const LLWebRTCVoiceClient::sessionStatePtr_t &session, F32 volume)
{
+ if (session->mShuttingDown)
+ {
+ return;
+ }
session->setSpeakerVolume(volume);
}
@@ -1906,6 +1910,10 @@ LLWebRTCVoiceClient::sessionState::sessionState() :
void LLWebRTCVoiceClient::predUpdateOwnVolume(const LLWebRTCVoiceClient::sessionStatePtr_t &session, F32 audio_level)
{
+ if (session->mShuttingDown)
+ {
+ return;
+ }
participantStatePtr_t participant = session->findParticipantByID(gAgentID);
if (participant)
{
@@ -1934,9 +1942,16 @@ void LLWebRTCVoiceClient::sessionState::sendData(const std::string &data)
void LLWebRTCVoiceClient::sessionState::setMuteMic(bool muted)
{
mMuted = muted;
+ if (mShuttingDown)
+ {
+ return;
+ }
for (auto &connection : mWebRTCConnections)
{
- connection->setMuteMic(muted);
+ if (!connection->isShuttingDown())
+ {
+ connection->setMuteMic(muted);
+ }
}
}
@@ -1945,7 +1960,10 @@ void LLWebRTCVoiceClient::sessionState::setSpeakerVolume(F32 volume)
mSpeakerVolume = volume;
for (auto &connection : mWebRTCConnections)
{
- connection->setSpeakerVolume(volume);
+ if (!connection->isShuttingDown())
+ {
+ connection->setSpeakerVolume(volume);
+ }
}
}
@@ -1957,7 +1975,10 @@ void LLWebRTCVoiceClient::sessionState::setUserVolume(const LLUUID &id, F32 volu
}
for (auto &connection : mWebRTCConnections)
{
- connection->setUserVolume(id, volume);
+ if (!connection->isShuttingDown())
+ {
+ connection->setUserVolume(id, volume);
+ }
}
}
@@ -1969,7 +1990,10 @@ void LLWebRTCVoiceClient::sessionState::setUserMute(const LLUUID &id, bool mute)
}
for (auto &connection : mWebRTCConnections)
{
- connection->setUserMute(id, mute);
+ if (!connection->isShuttingDown())
+ {
+ connection->setUserMute(id, mute);
+ }
}
}
/*static*/