X-Git-Url: http://git.tuebingen.mpg.de/?p=paraslash.git;a=blobdiff_plain;f=buffer_tree.c;h=84dc933a037c7552db6fdd7559ea096c2f892ae1;hp=aa9f1cdb0c95b77635981cea0e6bb1588bbcdc03;hb=072391fccbd052334dbd836d451f2be0a74a0685;hpb=282a5e463090205ef8a12f50a9ecf6498b860e88 diff --git a/buffer_tree.c b/buffer_tree.c index aa9f1cdb..84dc933a 100644 --- a/buffer_tree.c +++ b/buffer_tree.c @@ -544,14 +544,16 @@ static bool btr_no_children(struct btr_node *btrn) } /** - * Find out whether a node is an orphan node. + * Find out whether a node is an orphan. * * \param btrn The buffer tree node. * * \return True if \a btrn has no parent. * - * This function will always return true for the root node. However in case - * nodes have been removed from the tree, other nodes may become orphans too. + * This function returns true for the root node and false for any other node. + * + * After a (non-leaf) node was removed removed from the tree, the function + * returns true for all child nodes. */ bool btr_no_parent(struct btr_node *btrn) { @@ -833,7 +835,7 @@ size_t btr_get_input_queue_size(struct btr_node *btrn) /** * 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 @@ -841,9 +843,9 @@ size_t btr_get_input_queue_size(struct btr_node *btrn) * 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); @@ -860,7 +862,7 @@ void btr_splice_out_node(struct btr_node *btrn) list_del(&ch->node); } assert(list_empty(&btrn->children)); - btrn->parent = NULL; + *btrnp = NULL; } /**