Merge pull request #7028 from afabri/Orthtree-CC-GF

Orthtree:  Fix memory leak
This commit is contained in:
Laurent Rineau 2022-11-15 17:01:29 +01:00
commit c01757bc80
2 changed files with 15 additions and 2 deletions

View File

@ -320,8 +320,21 @@ public:
void refine(const Split_predicate& split_predicate) {
// If the tree has already been refined, reset it
if (!m_root.is_leaf())
if (!m_root.is_leaf()){
std::queue<Node> nodes;
for (std::size_t i = 0; i < Degree::value; ++ i)
nodes.push (m_root[i]);
while (!nodes.empty())
{
Node node = nodes.front();
nodes.pop();
if (!node.is_leaf())
for (std::size_t i = 0; i < Degree::value; ++ i)
nodes.push (node[i]);
node.free();
}
m_root.unsplit();
}
// Reset the side length map, too
m_side_per_depth.resize(1);

View File

@ -365,7 +365,7 @@ public:
}
/*!
\brief returns the nth child fo this node.
\brief returns the nth child of this node.
\pre `!is_null()`
\pre `!is_leaf()`