xref: /aosp_15_r20/external/musl/src/search/tdestroy.c (revision c9945492fdd68bbe62686c5b452b4dc1be3f8453)
1*c9945492SAndroid Build Coastguard Worker #define _GNU_SOURCE
2*c9945492SAndroid Build Coastguard Worker #include <stdlib.h>
3*c9945492SAndroid Build Coastguard Worker #include <search.h>
4*c9945492SAndroid Build Coastguard Worker #include "tsearch.h"
5*c9945492SAndroid Build Coastguard Worker 
tdestroy(void * root,void (* freekey)(void *))6*c9945492SAndroid Build Coastguard Worker void tdestroy(void *root, void (*freekey)(void *))
7*c9945492SAndroid Build Coastguard Worker {
8*c9945492SAndroid Build Coastguard Worker 	struct node *r = root;
9*c9945492SAndroid Build Coastguard Worker 
10*c9945492SAndroid Build Coastguard Worker 	if (r == 0)
11*c9945492SAndroid Build Coastguard Worker 		return;
12*c9945492SAndroid Build Coastguard Worker 	tdestroy(r->a[0], freekey);
13*c9945492SAndroid Build Coastguard Worker 	tdestroy(r->a[1], freekey);
14*c9945492SAndroid Build Coastguard Worker 	if (freekey) freekey((void *)r->key);
15*c9945492SAndroid Build Coastguard Worker 	free(r);
16*c9945492SAndroid Build Coastguard Worker }
17