summaryrefslogtreecommitdiff
path: root/indra/newview
diff options
context:
space:
mode:
authorAndreyL ProductEngine <alihatskiy@productengine.com>2016-02-18 23:19:51 +0200
committerAndreyL ProductEngine <alihatskiy@productengine.com>2016-02-18 23:19:51 +0200
commitf62971a4f0f5882735ec50374e5821f7a2004363 (patch)
tree24412ee10c41ea36294b277f352d683833870669 /indra/newview
parent8920beabc4b01dfdbd8eb3bbe33deefe03896f7d (diff)
parentade46cfee04b21cbe88ab64f148e0087ef0a74c6 (diff)
Merged bunch of crashfixes from Kitty
Diffstat (limited to 'indra/newview')
-rw-r--r--indra/newview/llnotificationlistitem.cpp3
-rw-r--r--indra/newview/llnotificationlistitem.h2
-rw-r--r--indra/newview/llpanelgroupexperiences.cpp2
-rwxr-xr-xindra/newview/llpreviewtexture.cpp8
-rwxr-xr-xindra/newview/lltoolmgr.cpp3
-rwxr-xr-xindra/newview/llvovolume.cpp4
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;