rbtree: move delete_fn from the structure to argument.
This commit is contained in:
parent
ae3dec912a
commit
b5f0c3117c
5 changed files with 10 additions and 14 deletions
|
|
@ -136,8 +136,8 @@ int inotify_unmap_path(const char *path) {
|
|||
|
||||
void inotify_unmap_all() {
|
||||
|
||||
rbtree_free(&tree_path_wd);
|
||||
rbtree_free(&tree_wd_paths);
|
||||
rbtree_free(&tree_path_wd, xfree);
|
||||
rbtree_free(&tree_wd_paths, wd_free);
|
||||
}
|
||||
|
||||
int inotify_map_get_wd(const char *path) {
|
||||
|
|
|
|||
|
|
@ -185,12 +185,12 @@ void rbtree_walk(rbtree *tree, void (*action)(const void *)) {
|
|||
#endif
|
||||
}
|
||||
|
||||
void rbtree_free(rbtree *tree) {
|
||||
void rbtree_free(rbtree *tree, void (*free_fn)(void *)) {
|
||||
|
||||
if (!tree)
|
||||
return;
|
||||
|
||||
node_dealloc(tree->root, tree->delete_fn);
|
||||
node_dealloc(tree->root, free_fn);
|
||||
tree->root = NULL;
|
||||
|
||||
#ifdef __DEBUG__
|
||||
|
|
|
|||
|
|
@ -16,11 +16,10 @@
|
|||
typedef struct {
|
||||
struct _rbn *root;
|
||||
/* user defined operations */
|
||||
void (*delete_fn)(void *);
|
||||
int (*cmp_fn)(const void *, const void *);
|
||||
} rbtree;
|
||||
|
||||
#define RBTREE_INIT(delete, update, cmp) { NULL, delete, cmp}
|
||||
#define RBTREE_INIT(delete, update, cmp) { NULL, cmp }
|
||||
|
||||
int rbtree_is_empty(rbtree *tree);
|
||||
|
||||
|
|
@ -28,7 +27,7 @@ void* rbtree_search(rbtree *tree, const void *key);
|
|||
|
||||
void rbtree_walk(rbtree *tree, void (*action)(const void *));
|
||||
|
||||
void rbtree_free(rbtree *tree);
|
||||
void rbtree_free(rbtree *tree, void (*free_fn)(void *));
|
||||
|
||||
int rbtree_insert(rbtree *tree, const void *key);
|
||||
|
||||
|
|
|
|||
Reference in a new issue