X-Git-Url: https://tinc-vpn.org/git/browse?a=blobdiff_plain;f=src%2Fsplay_tree.c;h=50d701c9c4b74ceebfe2fb9485bc6ef2ac4b3611;hb=3a149f7521dfff67e6a790c1a830afc649ae083e;hp=4d9737324f9475de83eb3e1b592b6e85f201a3af;hpb=bf81fce8ff7a244ecdfbe2d5535bdf4df07b3f35;p=tinc diff --git a/src/splay_tree.c b/src/splay_tree.c index 4d973732..50d701c9 100644 --- a/src/splay_tree.c +++ b/src/splay_tree.c @@ -604,12 +604,21 @@ void splay_delete(splay_tree_t *tree, void *data) { /* Fast tree cleanup */ -void splay_delete_tree(splay_tree_t *tree) { +void splay_empty_tree(splay_tree_t *tree) { for(splay_node_t *node = tree->head, *next; node; node = next) { next = node->next; splay_free_node(tree, node); } + tree->head = NULL; + tree->tail = NULL; + tree->root = NULL; + tree->count = 0; + tree->generation++; +} + +void splay_delete_tree(splay_tree_t *tree) { + splay_empty_tree(tree); splay_free_tree(tree); }