/**
* Remove a node from the buffer tree, reconnecting parent and children.
*
- * \param btrn The node to splice out.
+ * \param btrnp The node to splice out.
*
* This function is used by buffer tree nodes that do not exist during the
* whole lifetime of the buffer tree. Unlike btr_remove_node(), calling
* but reconnects the buffer tree by making all child nodes of \a btrn children
* of the parent of \a btrn.
*/
-void btr_splice_out_node(struct btr_node *btrn)
+void btr_splice_out_node(struct btr_node **btrnp)
{
- struct btr_node *ch, *tmp;
+ struct btr_node *btrn = *btrnp, *ch, *tmp;
assert(btrn);
PARA_NOTICE_LOG("splicing out %s\n", btrn->name);
list_del(&ch->node);
}
assert(list_empty(&btrn->children));
- btrn->parent = NULL;
+ *btrnp = NULL;
}
/**