diff --git a/libraries/liblutil/avl.c b/libraries/liblutil/avl.c index ad2918d557..279ff7f3eb 100644 --- a/libraries/liblutil/avl.c +++ b/libraries/liblutil/avl.c @@ -661,7 +661,14 @@ avl_find2( Avlnode *root, const void *data, AVL_CMP fcmp ) void* avl_find( Avlnode *root, const void* data, AVL_CMP fcmp ) { - root = avl_find2( root, data, fcmp ); + int cmp; + + while ( root != 0 && (cmp = (*fcmp)( data, root->avl_data )) != 0 ) { + if ( cmp < 0 ) + root = root->avl_left; + else + root = root->avl_right; + } return( root ? root->avl_data : 0 ); }