X-Git-Url: http://git.tuebingen.mpg.de/?p=paraslash.git;a=blobdiff_plain;f=rbtree.c;h=7f200d1dd09eb36e6e1dd2930969e47e11256485;hp=5d24aeb5063a788215eca93a73698f50a68b0bc2;hb=20ad4f0f93da79e2ec0a9699dff58b9922556438;hpb=e0621e0098d8507095268bc71ece2c778ccde0b3 diff --git a/rbtree.c b/rbtree.c index 5d24aeb5..7f200d1d 100644 --- a/rbtree.c +++ b/rbtree.c @@ -306,7 +306,7 @@ void rb_erase(struct rb_node *node, struct rb_root *root) /* * This function returns the first node (in sort order) of the tree. */ -struct rb_node *rb_first(struct rb_root *root) +struct rb_node *rb_first(const struct rb_root *root) { struct rb_node *n; @@ -318,7 +318,7 @@ struct rb_node *rb_first(struct rb_root *root) return n; } -struct rb_node *rb_last(struct rb_root *root) +struct rb_node *rb_last(const struct rb_root *root) { struct rb_node *n; @@ -330,7 +330,7 @@ struct rb_node *rb_last(struct rb_root *root) return n; } -struct rb_node *rb_next(struct rb_node *node) +struct rb_node *rb_next(const struct rb_node *node) { struct rb_node *parent; @@ -343,7 +343,7 @@ struct rb_node *rb_next(struct rb_node *node) node = node->rb_right; while (node->rb_left) node=node->rb_left; - return node; + return (struct rb_node *)node; } /* No right-hand children. Everything down and left is @@ -358,7 +358,7 @@ struct rb_node *rb_next(struct rb_node *node) return parent; } -struct rb_node *rb_prev(struct rb_node *node) +struct rb_node *rb_prev(const struct rb_node *node) { struct rb_node *parent; @@ -371,7 +371,7 @@ struct rb_node *rb_prev(struct rb_node *node) node = node->rb_left; while (node->rb_right) node=node->rb_right; - return node; + return (struct rb_node *)node; } /* No left-hand children. Go up till we find an ancestor which @@ -413,7 +413,7 @@ void rb_replace_node(struct rb_node *victim, struct rb_node *new, * * \return Pointer to the \a n th greatest node on success, \p NULL on errors. */ -struct rb_node *rb_nth(struct rb_node *node, unsigned n) +struct rb_node *rb_nth(const struct rb_node *node, unsigned n) { unsigned size = 1; @@ -422,7 +422,7 @@ struct rb_node *rb_nth(struct rb_node *node, unsigned n) if (node->rb_left) size += node->rb_left->size; if (n == size) - return node; + return (struct rb_node *)node; if (n < size) return rb_nth(node->rb_left, n); return rb_nth(node->rb_right, n - size); @@ -436,11 +436,11 @@ struct rb_node *rb_nth(struct rb_node *node, unsigned n) * * \return Positive on success, -1 on errors. */ -int rb_rank(struct rb_node *node, unsigned *rank) +int rb_rank(const struct rb_node *node, unsigned *rank) { - *rank = 1; struct rb_node *parent; + *rank = 1; if (!node) return -1; if (node->rb_left)