mirror of https://github.com/CGAL/cgal
Merge pull request #7028 from afabri/Orthtree-CC-GF
Orthtree: Fix memory leak
This commit is contained in:
commit
c01757bc80
|
|
@ -320,8 +320,21 @@ public:
|
||||||
void refine(const Split_predicate& split_predicate) {
|
void refine(const Split_predicate& split_predicate) {
|
||||||
|
|
||||||
// If the tree has already been refined, reset it
|
// 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();
|
m_root.unsplit();
|
||||||
|
}
|
||||||
|
|
||||||
// Reset the side length map, too
|
// Reset the side length map, too
|
||||||
m_side_per_depth.resize(1);
|
m_side_per_depth.resize(1);
|
||||||
|
|
|
||||||
|
|
@ -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_null()`
|
||||||
\pre `!is_leaf()`
|
\pre `!is_leaf()`
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue