diff options
author | AndreyL ProductEngine <alihatskiy@productengine.com> | 2016-02-18 23:19:51 +0200 |
---|---|---|
committer | AndreyL ProductEngine <alihatskiy@productengine.com> | 2016-02-18 23:19:51 +0200 |
commit | f62971a4f0f5882735ec50374e5821f7a2004363 (patch) | |
tree | 24412ee10c41ea36294b277f352d683833870669 /indra/newview | |
parent | 8920beabc4b01dfdbd8eb3bbe33deefe03896f7d (diff) | |
parent | ade46cfee04b21cbe88ab64f148e0087ef0a74c6 (diff) |
Merged bunch of crashfixes from Kitty
Diffstat (limited to 'indra/newview')
-rw-r--r-- | indra/newview/llnotificationlistitem.cpp | 3 | ||||
-rw-r--r-- | indra/newview/llnotificationlistitem.h | 2 | ||||
-rw-r--r-- | indra/newview/llpanelgroupexperiences.cpp | 2 | ||||
-rwxr-xr-x | indra/newview/llpreviewtexture.cpp | 8 | ||||
-rwxr-xr-x | indra/newview/lltoolmgr.cpp | 3 | ||||
-rwxr-xr-x | indra/newview/llvovolume.cpp | 4 |
6 files changed, 15 insertions, 7 deletions
diff --git a/indra/newview/llnotificationlistitem.cpp b/indra/newview/llnotificationlistitem.cpp index 8cdc2d7c0b..cbcf9cac9c 100644 --- a/indra/newview/llnotificationlistitem.cpp +++ b/indra/newview/llnotificationlistitem.cpp @@ -381,7 +381,7 @@ LLGroupNoticeNotificationListItem::LLGroupNoticeNotificationListItem(const Param buildFromFile("panel_notification_list_item.xml"); } -LLGroupNoticeNotificationListItem::~LLGroupNoticeNotificationListItem() +LLGroupNotificationListItem::~LLGroupNotificationListItem() { LLGroupMgr::getInstance()->removeObserver(this); } @@ -539,7 +539,6 @@ void LLGroupNoticeNotificationListItem::close() mInventoryOffer->forceResponse(IOR_DECLINE); mInventoryOffer = NULL; } - LLGroupMgr::getInstance()->removeObserver(this); } void LLGroupNoticeNotificationListItem::onClickAttachment() diff --git a/indra/newview/llnotificationlistitem.h b/indra/newview/llnotificationlistitem.h index 9a4ce2be4b..3dd52986b0 100644 --- a/indra/newview/llnotificationlistitem.h +++ b/indra/newview/llnotificationlistitem.h @@ -136,6 +136,7 @@ class LLGroupNotificationListItem : public LLNotificationListItem, public LLGroupMgrObserver { public: + virtual ~LLGroupNotificationListItem(); virtual BOOL postBuild(); void setGroupId(const LLUUID& value); @@ -192,7 +193,6 @@ class LLGroupNoticeNotificationListItem : public LLGroupNotificationListItem { public: - ~LLGroupNoticeNotificationListItem(); static std::set<std::string> getTypes(); virtual BOOL postBuild(); diff --git a/indra/newview/llpanelgroupexperiences.cpp b/indra/newview/llpanelgroupexperiences.cpp index 76b68122fb..2d7690895f 100644 --- a/indra/newview/llpanelgroupexperiences.cpp +++ b/indra/newview/llpanelgroupexperiences.cpp @@ -102,7 +102,7 @@ void LLPanelGroupExperiences::activate() } // search for experiences owned by the current group - std::string url = gAgent.getRegion()->getCapability("GroupExperiences"); + std::string url = (gAgent.getRegion()) ? gAgent.getRegion()->getCapability("GroupExperiences") : LLStringUtil::null; if (!url.empty()) { url += "?" + getGroupID().asString(); diff --git a/indra/newview/llpreviewtexture.cpp b/indra/newview/llpreviewtexture.cpp index c8cf0faa15..2a2c51be40 100755 --- a/indra/newview/llpreviewtexture.cpp +++ b/indra/newview/llpreviewtexture.cpp @@ -89,8 +89,12 @@ LLPreviewTexture::~LLPreviewTexture() { getWindow()->decBusyCount(); } - mImage->setBoostLevel(mImageOldBoostLevel); - mImage = NULL; + + if (mImage.notNull()) + { + mImage->setBoostLevel(mImageOldBoostLevel); + mImage = NULL; + } } // virtual diff --git a/indra/newview/lltoolmgr.cpp b/indra/newview/lltoolmgr.cpp index 3ecb4015ce..2f8e464b71 100755 --- a/indra/newview/lltoolmgr.cpp +++ b/indra/newview/lltoolmgr.cpp @@ -400,6 +400,9 @@ void LLToolMgr::clearTransientTool() void LLToolMgr::onAppFocusLost() { + if (LLApp::isQuitting()) + return; + if (mSelectedTool) { mSelectedTool->handleDeselect(); diff --git a/indra/newview/llvovolume.cpp b/indra/newview/llvovolume.cpp index b0eb60cc76..476c0eef15 100755 --- a/indra/newview/llvovolume.cpp +++ b/indra/newview/llvovolume.cpp @@ -2115,6 +2115,8 @@ bool LLVOVolume::notifyAboutMissingAsset(LLViewerTexture *texture) for(mmap_UUID_MAP_t::iterator range_it = range.first; range_it != range.second; ++range_it) { LLMaterialPtr cur_material = getTEMaterialParams(range_it->second.te); + if (cur_material.isNull()) + continue; switch(range_it->second.map) { @@ -3902,7 +3904,7 @@ BOOL LLVOVolume::lineSegmentIntersect(const LLVector4a& start, const LLVector4a& if (mDrawable->isState(LLDrawable::RIGGED)) { - if ((pick_rigged) || ((getAvatar()->isSelf()) && (LLFloater::isVisible(gFloaterTools)))) + if ((pick_rigged) || (getAvatar() && (getAvatar()->isSelf()) && (LLFloater::isVisible(gFloaterTools)))) { updateRiggedVolume(true); volume = mRiggedVolume; |