typedef void (*rb_free_t)(void *data);
rbtree_t *rbtree_create(TALLOC_CTX *ctx, rb_comparator_t compare, rb_free_t node_free, int flags);
+void rbtree_node_talloc_free(void *data);
void rbtree_free(rbtree_t *tree);
bool rbtree_insert(rbtree_t *tree, void *data);
rbnode_t *rbtree_insert_node(rbtree_t *tree, void *data);
talloc_free(x);
}
+/** Wrapper function for rbtree_create to allow talloc node data to be freed
+ *
+ * @param[in] data Talloced data to free.
+ */
+void rbtree_node_talloc_free(void *data)
+{
+ talloc_free(data);
+}
+
/** Executes the free walker on a tree, and then frees the tree itself
*
* @note If you don't require the free walker to execute, you can just