From 0559d569ec0d5b6cc3e6363ad29579c875cb5b47 Mon Sep 17 00:00:00 2001 From: andreykproductengine Date: Mon, 13 May 2019 18:53:11 +0300 Subject: [PATCH] SL-6306 Viewer freeze and crash on octree --- indra/llmath/lloctree.h | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/indra/llmath/lloctree.h b/indra/llmath/lloctree.h index e1885064b5..e755f8d21d 100644 --- a/indra/llmath/lloctree.h +++ b/indra/llmath/lloctree.h @@ -433,7 +433,7 @@ public: } } #ifndef OPENSIM // FIRE-11593: Opensim "4096 Bug" Fix by Latif Khalifa - else + else if (parent) { //it's not in here, give it to the root OCT_ERRS << "Octree insertion failed, starting over from root!" << LL_ENDL; @@ -448,6 +448,13 @@ public: node->insert(data); } + else + { + // It's not in here, and we are root. + // LLOctreeRoot::insert() should have expanded + // root by now, something is wrong + OCT_ERRS << "Octree insertion failed! Root expansion failed." << LL_ENDL; + } #endif // FIRE-11593: Opensim "4096 Bug" Fix by Latif Khalifa return false; @@ -800,10 +807,15 @@ public: { LLOctreeNode::insert(data); } - else + else if (node->isInside(data->getPositionGroup())) { node->insert(data); } + else + { + // calling node->insert(data) will return us to root + OCT_ERRS << "Failed to insert data at child node" << LL_ENDL; + } } else if (this->getChildCount() == 0) {