summaryrefslogtreecommitdiff
path: root/indra/newview/llconversationview.cpp
diff options
context:
space:
mode:
authorAndrey Kleshchev <andreykproductengine@lindenlab.com>2021-03-10 18:04:22 +0200
committerAndrey Kleshchev <andreykproductengine@lindenlab.com>2021-03-10 18:04:37 +0200
commit9505e14efe65f426ebf4cf85ad4b876c20d0be64 (patch)
treea629a84d84ecd871cc2d58fde6fda7cd7617347d /indra/newview/llconversationview.cpp
parenta1d2b94b4c06c6ea33bf7f76c4c07578d26845f9 (diff)
SL-14975 SL-14384 viewer crashes because of large chat groups
1. Due to desync participant can be NULL - added NULL checks 2. With large backlog of events, closing and then opening a goup session was causing a crash due to obsolete events - added cleanup for backlog 3. In some cases events were accumulating faster than they were processed - ensured that after certain point event processing scales up with a backlog
Diffstat (limited to 'indra/newview/llconversationview.cpp')
-rw-r--r--indra/newview/llconversationview.cpp11
1 files changed, 7 insertions, 4 deletions
diff --git a/indra/newview/llconversationview.cpp b/indra/newview/llconversationview.cpp
index 093e772abe..7c1db98b3f 100644
--- a/indra/newview/llconversationview.cpp
+++ b/indra/newview/llconversationview.cpp
@@ -617,10 +617,13 @@ void LLConversationViewParticipant::refresh()
{
// Refresh the participant view from its model data
LLConversationItemParticipant* participant_model = dynamic_cast<LLConversationItemParticipant*>(getViewModelItem());
- participant_model->resetRefresh();
-
- // *TODO: We should also do something with vmi->isModerator() to echo that state in the UI somewhat
- mSpeakingIndicator->setIsModeratorMuted(participant_model->isModeratorMuted());
+ if (participant_model)
+ {
+ participant_model->resetRefresh();
+
+ // *TODO: We should also do something with vmi->isModerator() to echo that state in the UI somewhat
+ mSpeakingIndicator->setIsModeratorMuted(participant_model->isModeratorMuted());
+ }
// Do the regular upstream refresh
LLFolderViewItem::refresh();