diff options
author | Seth ProductEngine <slitovchuk@productengine.com> | 2012-06-13 19:26:17 +0300 |
---|---|---|
committer | Seth ProductEngine <slitovchuk@productengine.com> | 2012-06-13 19:26:17 +0300 |
commit | b50349ab8490c9b48e9cf89b8de186b528d90e60 (patch) | |
tree | 692fe78ab1379332539698710bb2852b19d58eba | |
parent | 9993fa550ab3716e583a6d5699f27974c3a95eb9 (diff) |
CHUI-120 WIP Fix for crash after closing the chat floater.
-rw-r--r-- | indra/newview/llimconversation.cpp | 4 | ||||
-rw-r--r-- | indra/newview/llimfloater.cpp | 4 | ||||
-rw-r--r-- | indra/newview/llnearbychat.cpp | 4 |
3 files changed, 12 insertions, 0 deletions
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(); |