Archived
1
0
Fork 0

rbtree.c: search: return key instead of node.

This commit is contained in:
Henrik Hautakoski 2010-12-27 15:14:20 +01:00
parent 027bf154a7
commit 3671888b8b
3 changed files with 6 additions and 8 deletions

View file

@ -86,7 +86,7 @@ inline int rbtree_is_empty(rbtree *tree) {
/*
* Searches a tree by key.
*/
rbnode* rbtree_search(rbtree *tree, const void *key) {
void* rbtree_search(rbtree *tree, const void *key) {
rbnode *n;
@ -99,12 +99,11 @@ rbnode* rbtree_search(rbtree *tree, const void *key) {
int cmp = tree->cmp_fn(n->key, key);
if (cmp == 0)
break;
return (void *) n->key;
n = n->child[cmp < 0];
}
return n;
return NULL;
}
void rbtree_walk(rbtree *tree, void (*action)(rbnode *)) {

View file

@ -35,7 +35,7 @@ typedef struct {
int rbtree_is_empty(rbtree *tree);
rbnode* rbtree_search(rbtree *tree, const void *key);
void* rbtree_search(rbtree *tree, const void *key);
void rbtree_walk(rbtree *tree, void (*action)(rbnode *));