Signed-off-by: Timo Kokkonen <kaapeli@itanic.dy.fi>
struct quadtree *b))
{
int ret;
+ if (parent == new)
+ trap();
+
+ validate_tree(parent);
ret = compare(parent, new);
parent->child[ret] = new;
new->parent = parent;
+ validate_tree(new);
+
return new;
}
{
int i;
+ validate_tree(node);
+
/* First remove all children, if any */
+
for (i = 0; i < 4; i++) {
if (!node->child[i])
continue;
+ if (node->child[i] == node ||
+ node->child[i] == node->parent)
+ trap();
+
_quadtree_reposition_reqursively(root, node->child[i], compare);
node->child[i] = 0;
}
parent = quadtree_find_parent(node);
node->parent = 0;
+ validate_tree(parent);
return parent;
}