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