diff options
-rw-r--r-- | .github/workflows/cla.yaml | 2 | ||||
-rw-r--r-- | indra/newview/llviewerobjectlist.cpp | 2 | ||||
-rw-r--r-- | indra/newview/llvoicevivox.cpp | 51 |
3 files changed, 40 insertions, 15 deletions
diff --git a/.github/workflows/cla.yaml b/.github/workflows/cla.yaml index 3f4bf21864..013adc9ca8 100644 --- a/.github/workflows/cla.yaml +++ b/.github/workflows/cla.yaml @@ -13,7 +13,7 @@ jobs: steps: - name: CLA Assistant if: (github.event.comment.body == 'recheck' || github.event.comment.body == 'I have read the CLA Document and I hereby sign the CLA') || github.event_name == 'pull_request_target' - uses: secondlife-3p/contributor-assistant@v2 + uses: secondlife-3p/contributor-assistant@v2.6.1 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} PERSONAL_ACCESS_TOKEN: ${{ secrets.SHARED_CLA_TOKEN }} diff --git a/indra/newview/llviewerobjectlist.cpp b/indra/newview/llviewerobjectlist.cpp index 9e1d86faac..d667fdbea8 100644 --- a/indra/newview/llviewerobjectlist.cpp +++ b/indra/newview/llviewerobjectlist.cpp @@ -402,7 +402,7 @@ void LLViewerObjectList::processObjectUpdate(LLMessageSystem *mesgsys, LLViewerObject *objectp; S32 num_objects; - U32 local_id; + U32 local_id = 0; LLPCode pcode = 0; LLUUID fullid; S32 i; diff --git a/indra/newview/llvoicevivox.cpp b/indra/newview/llvoicevivox.cpp index 6bd06e6474..d64c25d312 100644 --- a/indra/newview/llvoicevivox.cpp +++ b/indra/newview/llvoicevivox.cpp @@ -2034,23 +2034,48 @@ bool LLVivoxVoiceClient::waitForChannel() llcoro::suspend(); break; } - sessionStatePtr_t joinSession = mNextAudioSession; - mNextAudioSession.reset(); - mIsProcessingChannels = true; - if (!runSession(joinSession)) //suspends + + try { - mIsProcessingChannels = false; - LL_DEBUGS("Voice") << "runSession returned false; leaving inner loop" << LL_ENDL; - break; + sessionStatePtr_t joinSession = mNextAudioSession; + mNextAudioSession.reset(); + mIsProcessingChannels = true; + if (!runSession(joinSession)) //suspends + { + mIsProcessingChannels = false; + LL_DEBUGS("Voice") << "runSession returned false; leaving inner loop" << LL_ENDL; + break; + } + else + { + mIsProcessingChannels = false; + LL_DEBUGS("Voice") + << "runSession returned true to inner loop" + << " RelogRequested=" << mRelogRequested + << " VoiceEnabled=" << mVoiceEnabled + << LL_ENDL; + } } - else + catch (const LLCoros::Stop&) + { + LL_DEBUGS("LLVivoxVoiceClient") << "Received a shutdown exception" << LL_ENDL; + } + catch (const LLContinueError&) + { + LOG_UNHANDLED_EXCEPTION("LLVivoxVoiceClient"); + } + catch (...) { - mIsProcessingChannels = false; - LL_DEBUGS("Voice") - << "runSession returned true to inner loop" - << " RelogRequested=" << mRelogRequested - << " VoiceEnabled=" << mVoiceEnabled + // Ideally for Windows need to log SEH exception instead or to set SEH + // handlers but bugsplat shows local variables for windows, which should + // be enough + LL_WARNS("Voice") << "voiceControlStateMachine crashed in state VOICE_CHANNEL_STATE_PROCESS_CHANNEL" + << " mRelogRequested " << mRelogRequested + << " mVoiceEnabled " << mVoiceEnabled + << " mIsProcessingChannels " << mIsProcessingChannels + << " mProcessChannels " << mProcessChannels << LL_ENDL; + throw; } } |