]> git.ipfire.org Git - thirdparty/freeradius-server.git/commitdiff
Add generic node free function for talloc node data
authorArran Cudbard-Bell <a.cudbardb@freeradius.org>
Thu, 24 Nov 2016 20:54:43 +0000 (15:54 -0500)
committerArran Cudbard-Bell <a.cudbardb@freeradius.org>
Thu, 24 Nov 2016 20:54:43 +0000 (15:54 -0500)
src/include/rbtree.h
src/lib/rbtree.c

index d03cd4606bd001c958b9ee745b90151476e479e8..a1058f5c060c19305cc3ac53be30e17623d6e8d4 100644 (file)
@@ -50,6 +50,7 @@ typedef int (*rb_walker_t)(void *ctx, void *data);
 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);
index 2fc5e361b502e451eaf0dd7447a0b218bfec0711..e39e374246fa96c01cd827541ab465a8c5438aeb 100644 (file)
@@ -74,6 +74,15 @@ static void free_walker(rbtree_t *tree, rbnode_t *x)
        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