summaryrefslogtreecommitdiff
path: root/indra/newview/llconversationmodel.cpp
diff options
context:
space:
mode:
authorAndrey Kleshchev <andreykproductengine@lindenlab.com>2021-03-10 18:04:22 +0200
committerDave Houlton <euclid@lindenlab.com>2021-03-26 15:47:49 -0600
commit3c002e7db56c214267177c040704484d0a489581 (patch)
tree09e417f38e3c76b0dc93bee9ec3fa3898873acc3 /indra/newview/llconversationmodel.cpp
parent303feae305eb526d75b7d9c8b640407cb8003469 (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/llconversationmodel.cpp')
-rw-r--r--indra/newview/llconversationmodel.cpp4
1 files changed, 2 insertions, 2 deletions
diff --git a/indra/newview/llconversationmodel.cpp b/indra/newview/llconversationmodel.cpp
index 4aa74a550c..27b1f3d20a 100644
--- a/indra/newview/llconversationmodel.cpp
+++ b/indra/newview/llconversationmodel.cpp
@@ -355,7 +355,7 @@ LLConversationItemParticipant* LLConversationItemSession::findParticipant(const
for (iter = mChildren.begin(); iter != mChildren.end(); iter++)
{
participant = dynamic_cast<LLConversationItemParticipant*>(*iter);
- if (participant->hasSameValue(participant_id))
+ if (participant && participant->hasSameValue(participant_id))
{
break;
}
@@ -466,7 +466,7 @@ const bool LLConversationItemSession::getTime(F64& time) const
{
participant = dynamic_cast<LLConversationItemParticipant*>(*iter);
F64 participant_time;
- if (participant->getTime(participant_time))
+ if (participant && participant->getTime(participant_time))
{
has_time = true;
most_recent_time = llmax(most_recent_time,participant_time);