summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorDavid Oberhollenzer <david.oberhollenzer@sigma-star.at>2021-03-07 18:15:50 +0100
committerDavid Oberhollenzer <david.oberhollenzer@sigma-star.at>2021-03-07 18:15:50 +0100
commit723019f727ce53b392389bdadcc1701ae47e6a14 (patch)
tree148912aacb539269a89b0d473abb9a85466628e0 /include
parent8f79a36a592c796c19037a2513c6fc7098698dee (diff)
Optionally use a pool allocator for rb-tree nodes
This commit restructures the rbtree code to optionally use a pool allocator for the nodes. The option is made depenend on the presence of a pre-processor flag. To the configure script is added an option to enable/disable the use of custom allocators. It makes sense to still allow the malloc/free based routes for better ASAN based instrumentation. Signed-off-by: David Oberhollenzer <david.oberhollenzer@sigma-star.at>
Diffstat (limited to 'include')
-rw-r--r--include/rbtree.h5
1 files changed, 5 insertions, 0 deletions
diff --git a/include/rbtree.h b/include/rbtree.h
index b1ddcd2..aac175b 100644
--- a/include/rbtree.h
+++ b/include/rbtree.h
@@ -9,6 +9,7 @@
#include "config.h"
#include "sqfs/predef.h"
+#include "mempool.h"
#include "compat.h"
#include <stddef.h>
@@ -26,6 +27,10 @@ typedef struct rbtree_node_t {
typedef struct rbtree_t {
rbtree_node_t *root;
+#ifndef NO_CUSTOM_ALLOC
+ mem_pool_t *pool;
+#endif
+
int (*key_compare)(const void *ctx,
const void *lhs, const void *hrs);