From d8872d5273b5cc952f692d970f19db90588a1508 Mon Sep 17 00:00:00 2001 From: Andrey Kleshchev Date: Wed, 26 Jul 2023 21:30:24 +0300 Subject: SL-18720 getDataBegin() and stateSort() crashes No repro, but likely cause is in mOctreeNode being NULL. Marked octree group as dead when destroyed and added isDead verification --- indra/newview/llvieweroctree.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'indra/newview/llvieweroctree.cpp') diff --git a/indra/newview/llvieweroctree.cpp b/indra/newview/llvieweroctree.cpp index a2d8d30fb2..9d63241300 100644 --- a/indra/newview/llvieweroctree.cpp +++ b/indra/newview/llvieweroctree.cpp @@ -627,13 +627,17 @@ void LLViewerOctreeGroup::handleRemoval(const TreeNode* node, LLViewerOctreeEntr //virtual void LLViewerOctreeGroup::handleDestruction(const TreeNode* node) { + if (isDead()) + { + return; + } + setState(DEAD); for (OctreeNode::element_iter i = mOctreeNode->getDataBegin(); i != mOctreeNode->getDataEnd(); ++i) { LLViewerOctreeEntry* obj = *i; if (obj && obj->getGroup() == this) { obj->nullGroup(); - //obj->setGroup(NULL); } } mOctreeNode = NULL; -- cgit v1.2.3