diff --git a/src/utils/avltree.c b/src/utils/avltree.c
index 353a3849c2c307c975413d72a9dba64dfc0f7258..56bc57d3087b69bccc42c20fde8cdfcd835f8162 100644 (file)
--- a/src/utils/avltree.c
+++ b/src/utils/avltree.c
return 0;
} /* sdb_avltree_insert */
+sdb_object_t *
+sdb_avltree_lookup(sdb_avltree_t *tree, const sdb_object_t *ref)
+{
+ node_t *n;
+
+ if (! tree)
+ return NULL;
+
+ n = tree->root;
+ while (n) {
+ int diff = tree->cmp(n->obj, ref);
+
+ if (! diff) {
+ sdb_object_ref(n->obj);
+ return n->obj;
+ }
+
+ if (diff < 0)
+ n = n->right;
+ else
+ n = n->left;
+ }
+ return NULL;
+} /* sdb_avltree_lookup_by_name */
+
sdb_avltree_iter_t *
sdb_avltree_get_iter(sdb_avltree_t *tree)
{