From 3836ce9ba6872555494e434878fdc6f489a5f1d6 Mon Sep 17 00:00:00 2001
From: thickbrick
Date: Tue, 5 Apr 2011 23:11:32 +0300
Subject: Fix #846: Crash when double-clicking system tree

---
 linden/indra/newview/lltoolpie.cpp | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

(limited to 'linden')

diff --git a/linden/indra/newview/lltoolpie.cpp b/linden/indra/newview/lltoolpie.cpp
index b7d762c..dbb5b63 100644
--- a/linden/indra/newview/lltoolpie.cpp
+++ b/linden/indra/newview/lltoolpie.cpp
@@ -802,8 +802,8 @@ BOOL LLToolPie::handleDoubleClick(S32 x, S32 y, MASK mask)
 		}
 
 		const LLTextureEntry* tep = object->getTE(mPick.mObjectFace);
-		viewer_media_t media_impl = LLViewerMedia::getMediaImplFromTextureID(tep->getID());
-		if (tep && media_impl.notNull() && media_impl->hasMedia())
+		viewer_media_t media_impl = tep ? LLViewerMedia::getMediaImplFromTextureID(tep->getID()) : NULL;
+		if (media_impl.notNull() && media_impl->hasMedia())
 		{
 			LL_DEBUGS("DoubleClicks") << "Double clicked running parcel media" << LL_ENDL;
 			return FALSE;
-- 
cgit v1.1


From 5c9c5ecd774dc31c9b0afd64b63d574b698cc428 Mon Sep 17 00:00:00 2001
From: thickbrick
Date: Tue, 5 Apr 2011 23:16:20 +0300
Subject: Fix #851: Crash in LLViewerObject::getBoundingBoxAgent

Add some null guards, taken from Snowglobe 2.
---
 linden/indra/newview/llviewerobject.cpp | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

(limited to 'linden')

diff --git a/linden/indra/newview/llviewerobject.cpp b/linden/indra/newview/llviewerobject.cpp
index 65c1d11..9d69be5 100644
--- a/linden/indra/newview/llviewerobject.cpp
+++ b/linden/indra/newview/llviewerobject.cpp
@@ -4012,9 +4012,15 @@ LLBBox LLViewerObject::getBoundingBoxAgent() const
 {
 	LLVector3 position_agent;
 	LLQuaternion rot;
+	LLViewerObject* avatar_parent = NULL;
 	LLViewerObject* root_edit = (LLViewerObject*)getRootEdit();
-	LLViewerObject* avatar_parent = (LLViewerObject*)root_edit->getParent();
-	if (avatar_parent && avatar_parent->isAvatar() && root_edit->mDrawable.notNull())
+	if (root_edit)
+	{
+		avatar_parent = (LLViewerObject*)root_edit->getParent();
+	}
+
+	if (avatar_parent && avatar_parent->isAvatar() &&
+		root_edit && root_edit->mDrawable.notNull() && root_edit->mDrawable->getXform()->getParent())
 	{
 		LLXform* parent_xform = root_edit->mDrawable->getXform()->getParent();
 		position_agent = (getPositionEdit() * parent_xform->getWorldRotation()) + parent_xform->getWorldPosition();
-- 
cgit v1.1