X-Git-Url: https://wimlib.net/git/?a=blobdiff_plain;f=include%2Fwimlib%2Favl_tree.h;h=b7a9bb1b27fb3958bc8734cb160f36944d66981c;hb=8c27aef8836800bd83d92cad6b994ed1fea5891e;hp=ed615edc3931e9646dac5af5ab6adf9174c6bf02;hpb=fc77cae5bad7d23165ed96121134fcc11b1b7d0a;p=wimlib diff --git a/include/wimlib/avl_tree.h b/include/wimlib/avl_tree.h index ed615edc..b7a9bb1b 100644 --- a/include/wimlib/avl_tree.h +++ b/include/wimlib/avl_tree.h @@ -145,10 +145,18 @@ avl_tree_lookup_node(const struct avl_tree_node *root, int (*cmp)(const struct avl_tree_node *, const struct avl_tree_node *)) { - return avl_tree_lookup(root, - (const void *)node, - (int (*) (const void *, - const struct avl_tree_node *))cmp); + const struct avl_tree_node *cur = root; + + while (cur) { + int res = (*cmp)(node, cur); + if (res < 0) + cur = cur->left; + else if (res > 0) + cur = cur->right; + else + break; + } + return (struct avl_tree_node*)cur; } /*