From bf28ce42390697f89367cdb7b2b350ac68bbe791 Mon Sep 17 00:00:00 2001 From: Shyotl Date: Wed, 16 May 2012 12:06:05 -0500 Subject: [PATCH] Few nullchecks, and fixed broken logic in LLPanelAvatar::canClose() --- indra/newview/llpanelavatar.cpp | 23 ++++++++++++----------- indra/newview/llviewerobject.cpp | 5 ++++- 2 files changed, 16 insertions(+), 12 deletions(-) diff --git a/indra/newview/llpanelavatar.cpp b/indra/newview/llpanelavatar.cpp index 5dceed26c..4e922cc34 100644 --- a/indra/newview/llpanelavatar.cpp +++ b/indra/newview/llpanelavatar.cpp @@ -1599,7 +1599,7 @@ LLPanelAvatar::~LLPanelAvatar() BOOL LLPanelAvatar::canClose() { - return mPanelClassified && mPanelClassified->canClose(); + return !mPanelClassified || mPanelClassified->canClose(); } void LLPanelAvatar::setAvatar(LLViewerObject *avatarp) @@ -1645,6 +1645,7 @@ void LLPanelAvatar::setOnlineStatus(EOnlineStatus online_status) online_status = ONLINE_STATUS_YES; } + if(mPanelSecondLife) mPanelSecondLife->childSetVisible("online_yes", online_status == ONLINE_STATUS_YES); // Since setOnlineStatus gets called after setAvatarID @@ -1711,9 +1712,9 @@ void LLPanelAvatar::setAvatarID(const LLUUID &avatar_id, const std::string &name (*it)->setAvatarID(avatar_id); } - mPanelSecondLife->enableControls(own_avatar && mAllowEdit); - mPanelWeb->enableControls(own_avatar && mAllowEdit); - mPanelAdvanced->enableControls(own_avatar && mAllowEdit); + if (mPanelSecondLife) mPanelSecondLife->enableControls(own_avatar && mAllowEdit); + if (mPanelWeb) mPanelWeb->enableControls(own_avatar && mAllowEdit); + if (mPanelAdvanced) mPanelAdvanced->enableControls(own_avatar && mAllowEdit); // Teens don't have this. if (mPanelFirstLife) mPanelFirstLife->enableControls(own_avatar && mAllowEdit); @@ -1772,16 +1773,16 @@ void LLPanelAvatar::setAvatarID(const LLUUID &avatar_id, const std::string &name { // While we're waiting for data off the network, clear out the // old data. - mPanelSecondLife->clearControls(); + if(mPanelSecondLife) mPanelSecondLife->clearControls(); - mPanelPicks->deletePickPanels(); - mPanelPicks->setDataRequested(false); + if(mPanelPicks) mPanelPicks->deletePickPanels(); + if(mPanelPicks) mPanelPicks->setDataRequested(false); - mPanelClassified->deleteClassifiedPanels(); - mPanelClassified->setDataRequested(false); + if(mPanelClassified) mPanelClassified->deleteClassifiedPanels(); + if(mPanelClassified) mPanelClassified->setDataRequested(false); - mPanelNotes->clearControls(); - mPanelNotes->setDataRequested(false); + if(mPanelNotes) mPanelNotes->clearControls(); + if(mPanelNotes) mPanelNotes->setDataRequested(false); mHaveNotes = false; mLastNotes.clear(); diff --git a/indra/newview/llviewerobject.cpp b/indra/newview/llviewerobject.cpp index 5b0a1e364..a44f58487 100644 --- a/indra/newview/llviewerobject.cpp +++ b/indra/newview/llviewerobject.cpp @@ -146,7 +146,10 @@ LLViewerObject *LLViewerObject::createObject(const LLUUID &id, const LLPCode pco } else { - gAgentAvatarp->updateRegion(regionp); + if (isAgentAvatarValid()) + { + gAgentAvatarp->updateRegion(regionp); + } } res = gAgentAvatarp; }