From 92bdd1d13f3964a01716be7430ec510a73050976 Mon Sep 17 00:00:00 2001
From: Andrey Kleshchev <andreykproductengine@lindenlab.com>
Date: Mon, 18 May 2020 15:03:06 +0300
Subject: SL-13265 "Empty leaf" crash safeguards

---
 indra/newview/llspatialpartition.cpp | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

(limited to 'indra')

diff --git a/indra/newview/llspatialpartition.cpp b/indra/newview/llspatialpartition.cpp
index 77bbcdada6..d39c3d3ea8 100644
--- a/indra/newview/llspatialpartition.cpp
+++ b/indra/newview/llspatialpartition.cpp
@@ -3123,13 +3123,13 @@ void renderRaycast(LLDrawable* drawablep)
 		LLGLEnable blend(GL_BLEND);
 		gGL.diffuseColor4f(0,1,1,0.5f);
 
-		if (drawablep->getVOVolume())
+		LLVOVolume* vobj = drawablep->getVOVolume();
+		if (vobj && !vobj->isDead())
 		{
 			//glPolygonMode(GL_FRONT_AND_BACK, GL_LINE);
 			//pushVerts(drawablep->getFace(gDebugRaycastFaceHit), LLVertexBuffer::MAP_VERTEX);
 			//glPolygonMode(GL_FRONT_AND_BACK, GL_FILL);
 
-			LLVOVolume* vobj = drawablep->getVOVolume();
 			LLVolume* volume = vobj->getVolume();
 
 			bool transform = true;
@@ -3358,7 +3358,7 @@ public:
 		for (OctreeNode::const_element_iter i = branch->getDataBegin(); i != branch->getDataEnd(); ++i)
 		{
 			LLDrawable* drawable = (LLDrawable*)(*i)->getDrawable();
-			if(!drawable)
+			if(!drawable || drawable->isDead())
 		{
 				continue;
 			}
-- 
cgit v1.2.3


From 97519423727f340c1b19b2a61bb48f7c00c387dd Mon Sep 17 00:00:00 2001
From: Andrey Kleshchev <andreykproductengine@lindenlab.com>
Date: Mon, 18 May 2020 18:31:50 +0300
Subject: Small Cleanup

---
 indra/newview/llaccountingcostmanager.h    | 6 ------
 indra/newview/llagent.h                    | 7 -------
 indra/newview/llaisapi.h                   | 1 -
 indra/newview/llattachmentsmgr.h           | 2 --
 indra/newview/llavatariconctrl.h           | 1 -
 indra/newview/llavatarlistitem.h           | 2 +-
 indra/newview/llchatbar.cpp                | 1 -
 indra/newview/llchathistory.cpp            | 1 +
 indra/newview/llchatitemscontainerctrl.cpp | 1 +
 indra/newview/llchatitemscontainerctrl.h   | 3 ++-
 indra/newview/llchiclet.cpp                | 1 +
 indra/newview/llcolorswatch.h              | 1 -
 indra/newview/llcompilequeue.h             | 3 ---
 indra/newview/llconversationview.h         | 1 +
 indra/newview/lldrawpoolavatar.cpp         | 1 -
 indra/newview/llfloaterimcontainer.cpp     | 1 +
 indra/newview/llfloatersnapshot.h          | 1 +
 indra/newview/llpanelavatar.cpp            | 1 +
 18 files changed, 10 insertions(+), 25 deletions(-)

(limited to 'indra')

diff --git a/indra/newview/llaccountingcostmanager.h b/indra/newview/llaccountingcostmanager.h
index 55e1d19f05..d133c6437b 100644
--- a/indra/newview/llaccountingcostmanager.h
+++ b/indra/newview/llaccountingcostmanager.h
@@ -30,12 +30,6 @@
 #include "llhandle.h"
 
 #include "llaccountingcost.h"
-#include "httpcommon.h"
-#include "llcoros.h"
-#include "lleventcoro.h"
-#include "httprequest.h"
-#include "httpheaders.h"
-#include "httpoptions.h"
 
 //===============================================================================
 // An interface class for panels which display the parcel accounting information.
diff --git a/indra/newview/llagent.h b/indra/newview/llagent.h
index 1a352d3397..7f729b9794 100644
--- a/indra/newview/llagent.h
+++ b/indra/newview/llagent.h
@@ -47,20 +47,15 @@ extern const BOOL 	ANIMATE;
 extern const U8 	AGENT_STATE_TYPING;  // Typing indication
 extern const U8 	AGENT_STATE_EDITING; // Set when agent has objects selected
 
-class LLChat;
 class LLViewerRegion;
 class LLMotion;
-class LLToolset;
 class LLMessageSystem;
 class LLPermissions;
 class LLHost;
 class LLFriendObserver;
-class LLPickInfo;
-class LLViewerObject;
 class LLAgentDropGroupViewerNode;
 class LLAgentAccess;
 class LLSLURL;
-class LLPauseRequestHandle;
 class LLUIColor;
 class LLTeleportRequest;
 
@@ -91,8 +86,6 @@ struct LLGroupData
 
 class LLAgentListener;
 
-class LLAgentImpl;
-
 //------------------------------------------------------------------------
 // LLAgent
 //------------------------------------------------------------------------
diff --git a/indra/newview/llaisapi.h b/indra/newview/llaisapi.h
index e97059014b..fc1a6c0871 100644
--- a/indra/newview/llaisapi.h
+++ b/indra/newview/llaisapi.h
@@ -31,7 +31,6 @@
 #include <map>
 #include <set>
 #include <string>
-#include "llhttpretrypolicy.h"
 #include "llviewerinventory.h"
 #include "llcorehttputil.h"
 #include "llcoproceduremanager.h"
diff --git a/indra/newview/llattachmentsmgr.h b/indra/newview/llattachmentsmgr.h
index a4ef762e8b..90aeff3032 100644
--- a/indra/newview/llattachmentsmgr.h
+++ b/indra/newview/llattachmentsmgr.h
@@ -30,8 +30,6 @@
 
 #include "llsingleton.h"
 
-class LLViewerInventoryItem;
-
 //--------------------------------------------------------------------------------
 // LLAttachmentsMgr
 // 
diff --git a/indra/newview/llavatariconctrl.h b/indra/newview/llavatariconctrl.h
index a1dacd1a27..c510e86958 100644
--- a/indra/newview/llavatariconctrl.h
+++ b/indra/newview/llavatariconctrl.h
@@ -31,7 +31,6 @@
 
 #include "lliconctrl.h"
 #include "llavatarpropertiesprocessor.h"
-#include "llviewermenu.h"
 
 class LLAvatarName;
 
diff --git a/indra/newview/llavatarlistitem.h b/indra/newview/llavatarlistitem.h
index 36d18114aa..b95cd68526 100644
--- a/indra/newview/llavatarlistitem.h
+++ b/indra/newview/llavatarlistitem.h
@@ -30,7 +30,6 @@
 #include <boost/signals2.hpp>
 
 #include "llpanel.h"
-#include "lloutputmonitorctrl.h"
 #include "llbutton.h"
 #include "lltextbox.h"
 #include "llstyle.h"
@@ -38,6 +37,7 @@
 #include "llcallingcard.h" // for LLFriendObserver
 
 class LLAvatarIconCtrl;
+class LLOutputMonitorCtrl;
 class LLAvatarName;
 class LLIconCtrl;
 
diff --git a/indra/newview/llchatbar.cpp b/indra/newview/llchatbar.cpp
index 54c6c985d6..3ab5c669c4 100644
--- a/indra/newview/llchatbar.cpp
+++ b/indra/newview/llchatbar.cpp
@@ -57,7 +57,6 @@
 #include "llinventorymodel.h"
 #include "llmultigesture.h"
 #include "llui.h"
-#include "llviewermenu.h"
 #include "lluictrlfactory.h"
 
 //
diff --git a/indra/newview/llchathistory.cpp b/indra/newview/llchathistory.cpp
index 1099d4bc09..b4e7b60b38 100644
--- a/indra/newview/llchathistory.cpp
+++ b/indra/newview/llchathistory.cpp
@@ -64,6 +64,7 @@
 #include "llstring.h"
 #include "llurlaction.h"
 #include "llviewercontrol.h"
+#include "llviewermenu.h"
 #include "llviewerobjectlist.h"
 
 static LLDefaultChildRegistry::Register<LLChatHistory> r("chat_history");
diff --git a/indra/newview/llchatitemscontainerctrl.cpp b/indra/newview/llchatitemscontainerctrl.cpp
index 4f42868f1a..1c22e055bb 100644
--- a/indra/newview/llchatitemscontainerctrl.cpp
+++ b/indra/newview/llchatitemscontainerctrl.cpp
@@ -27,6 +27,7 @@
 #include "llviewerprecompiledheaders.h"
 
 #include "llchatitemscontainerctrl.h"
+#include "llchatmsgbox.h"
 #include "lltextbox.h"
 
 #include "llavataractions.h"
diff --git a/indra/newview/llchatitemscontainerctrl.h b/indra/newview/llchatitemscontainerctrl.h
index f66670ec8c..ebff9ca298 100644
--- a/indra/newview/llchatitemscontainerctrl.h
+++ b/indra/newview/llchatitemscontainerctrl.h
@@ -28,12 +28,13 @@
 #define LL_LLCHATITEMSCONTAINERCTRL_H_
 
 #include "llchat.h"
-#include "llchatmsgbox.h"
 #include "llpanel.h"
 #include "llscrollbar.h"
 #include "llviewerchat.h"
 #include "lltoastpanel.h"
 
+class LLChatMsgBox;
+
 typedef enum e_show_item_header
 {
 	CHATITEMHEADER_SHOW_ONLY_NAME = 0,
diff --git a/indra/newview/llchiclet.cpp b/indra/newview/llchiclet.cpp
index dedb06c945..a8b241d5a9 100644
--- a/indra/newview/llchiclet.cpp
+++ b/indra/newview/llchiclet.cpp
@@ -36,6 +36,7 @@
 #include "llsingleton.h"
 #include "llsyswellwindow.h"
 #include "llfloaternotificationstabbed.h"
+#include "llviewermenu.h"
 
 static LLDefaultChildRegistry::Register<LLChicletPanel> t1("chiclet_panel");
 static LLDefaultChildRegistry::Register<LLNotificationChiclet> t2("chiclet_notification");
diff --git a/indra/newview/llcolorswatch.h b/indra/newview/llcolorswatch.h
index 380fdccfa3..a17cab486a 100644
--- a/indra/newview/llcolorswatch.h
+++ b/indra/newview/llcolorswatch.h
@@ -36,7 +36,6 @@
 // Classes
 //
 class LLColor4;
-class LLFloaterColorPicker;
 
 class LLColorSwatchCtrl
 : public LLUICtrl
diff --git a/indra/newview/llcompilequeue.h b/indra/newview/llcompilequeue.h
index 1b3d8f83a0..adb854875a 100644
--- a/indra/newview/llcompilequeue.h
+++ b/indra/newview/llcompilequeue.h
@@ -29,14 +29,11 @@
 
 #include "llinventory.h"
 #include "llviewerobject.h"
-#include "llvoinventorylistener.h"
 #include "lluuid.h"
 
 #include "llfloater.h"
 #include "llscrolllistctrl.h"
 
-#include "llviewerinventory.h"
-
 #include "llevents.h"
 
 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
diff --git a/indra/newview/llconversationview.h b/indra/newview/llconversationview.h
index 420c250dfe..c5930c8a29 100644
--- a/indra/newview/llconversationview.h
+++ b/indra/newview/llconversationview.h
@@ -34,6 +34,7 @@
 #include "lloutputmonitorctrl.h"
 
 class LLTextBox;
+class LLFloater;
 class LLFloaterIMContainer;
 class LLConversationViewSession;
 class LLConversationViewParticipant;
diff --git a/indra/newview/lldrawpoolavatar.cpp b/indra/newview/lldrawpoolavatar.cpp
index 789a254389..d8725cd448 100644
--- a/indra/newview/lldrawpoolavatar.cpp
+++ b/indra/newview/lldrawpoolavatar.cpp
@@ -38,7 +38,6 @@
 #include "lldrawable.h"
 #include "lldrawpoolbump.h"
 #include "llface.h"
-#include "llvolume.h"
 #include "llmeshrepository.h"
 #include "llsky.h"
 #include "llviewercamera.h"
diff --git a/indra/newview/llfloaterimcontainer.cpp b/indra/newview/llfloaterimcontainer.cpp
index 21420b122b..f77fd1cf39 100644
--- a/indra/newview/llfloaterimcontainer.cpp
+++ b/indra/newview/llfloaterimcontainer.cpp
@@ -54,6 +54,7 @@
 #include "llcallbacklist.h"
 #include "llworld.h"
 #include "llsdserialize.h"
+#include "llviewermenu.h" // is_agent_mappable
 #include "llviewerobjectlist.h"
 #include "boost/foreach.hpp"
 
diff --git a/indra/newview/llfloatersnapshot.h b/indra/newview/llfloatersnapshot.h
index bcba14d63d..8221b0a637 100644
--- a/indra/newview/llfloatersnapshot.h
+++ b/indra/newview/llfloatersnapshot.h
@@ -34,6 +34,7 @@
 
 class LLSpinCtrl;
 class LLSnapshotLivePreview;
+class LLToolset;
 
 class LLFloaterSnapshotBase : public LLFloater
 {
diff --git a/indra/newview/llpanelavatar.cpp b/indra/newview/llpanelavatar.cpp
index 5d1b582d1f..37ed4bc74c 100644
--- a/indra/newview/llpanelavatar.cpp
+++ b/indra/newview/llpanelavatar.cpp
@@ -44,6 +44,7 @@
 #include "llavatariconctrl.h"
 #include "llfloaterreg.h"
 #include "llnotificationsutil.h"
+#include "llviewermenu.h" // is_agent_mappable
 #include "llvoiceclient.h"
 #include "lltextbox.h"
 #include "lltrans.h"
-- 
cgit v1.2.3