From b50349ab8490c9b48e9cf89b8de186b528d90e60 Mon Sep 17 00:00:00 2001 From: Seth ProductEngine Date: Wed, 13 Jun 2012 19:26:17 +0300 Subject: CHUI-120 WIP Fix for crash after closing the chat floater. --- indra/newview/llimconversation.cpp | 4 ++++ indra/newview/llimfloater.cpp | 4 ++++ indra/newview/llnearbychat.cpp | 4 ++++ 3 files changed, 12 insertions(+) (limited to 'indra') diff --git a/indra/newview/llimconversation.cpp b/indra/newview/llimconversation.cpp index 99b28255cd..b45fc63825 100644 --- a/indra/newview/llimconversation.cpp +++ b/indra/newview/llimconversation.cpp @@ -114,6 +114,10 @@ BOOL LLIMConversation::postBuild() BOOL LLIMConversation::tick() { + // This check is needed until LLFloaterReg::removeInstance() is synchronized with deleting the floater + // via LLMortician::updateClass(), to avoid calling dead instances. See LLFloater::destroy(). + if (isDead()) return false; + // Need to resort the participant list if it's in sort by recent speaker order. if (mParticipantList) { diff --git a/indra/newview/llimfloater.cpp b/indra/newview/llimfloater.cpp index dcd19b5856..3458e740e7 100644 --- a/indra/newview/llimfloater.cpp +++ b/indra/newview/llimfloater.cpp @@ -487,6 +487,10 @@ void LLIMFloater::onAvatarNameCache(const LLUUID& agent_id, // virtual BOOL LLIMFloater::tick() { + // This check is needed until LLFloaterReg::removeInstance() is synchronized with deleting the floater + // via LLMortician::updateClass(), to avoid calling dead instances. See LLFloater::destroy(). + if (isDead()) return false; + BOOL parents_retcode = LLIMConversation::tick(); if ( mMeTyping ) diff --git a/indra/newview/llnearbychat.cpp b/indra/newview/llnearbychat.cpp index 2f5a3a8767..cd181ce865 100644 --- a/indra/newview/llnearbychat.cpp +++ b/indra/newview/llnearbychat.cpp @@ -404,6 +404,10 @@ void LLNearbyChat::showTranslationCheckbox(BOOL show) BOOL LLNearbyChat::tick() { + // This check is needed until LLFloaterReg::removeInstance() is synchronized with deleting the floater + // via LLMortician::updateClass(), to avoid calling dead instances. See LLFloater::destroy(). + if (isDead()) return false; + BOOL parents_retcode = LLIMConversation::tick(); displaySpeakingIndicator(); -- cgit v1.2.3