X-Git-Url: https://tinc-vpn.org/git/browse?a=blobdiff_plain;f=src%2Fsplay_tree.h;h=24645fa5fefe74facb5e0879ec76073051685d31;hb=e62fd508158749a0d55eae06c2e361df5d6da6e0;hp=06367bf5848abe2b6c911f5450a4af6aded6b72c;hpb=42d2dff33306beae8ddbd9cc991ad80f135950a6;p=tinc diff --git a/src/splay_tree.h b/src/splay_tree.h index 06367bf5..24645fa5 100644 --- a/src/splay_tree.h +++ b/src/splay_tree.h @@ -41,7 +41,6 @@ typedef struct splay_node_t { typedef int (*splay_compare_t)(const void *data1, const void *data2); typedef void (*splay_action_t)(const void *data); -typedef void (*splay_action_node_t)(const splay_node_t *node); typedef struct splay_tree_t { @@ -57,16 +56,17 @@ typedef struct splay_tree_t { splay_compare_t compare; splay_action_t delete; - int count; + unsigned int count; + unsigned int generation; } splay_tree_t; /* (De)constructors */ -extern splay_tree_t *splay_alloc_tree(splay_compare_t compare, splay_action_t delete) __attribute__((__malloc__)); +extern splay_tree_t *splay_alloc_tree(splay_compare_t compare, splay_action_t delete) ATTR_MALLOC; extern void splay_free_tree(splay_tree_t *tree); -extern splay_node_t *splay_alloc_node(void) __attribute__((__malloc__)); +extern splay_node_t *splay_alloc_node(void) ATTR_MALLOC; extern void splay_free_node(splay_tree_t *tree, splay_node_t *node); /* Insertion and deletion */ @@ -85,6 +85,7 @@ extern void splay_delete_node(splay_tree_t *tree, splay_node_t *node); /* Fast tree cleanup */ +extern void splay_empty_tree(splay_tree_t *tree); extern void splay_delete_tree(splay_tree_t *tree); /* Searching */