| /** | 
 |  * This file has no copyright assigned and is placed in the Public Domain. | 
 |  * This file is part of the mingw-w64 runtime package. | 
 |  * No warranty is given; refer to the file DISCLAIMER.PD within this package. | 
 |  */ | 
 |  | 
 | #include <assert.h> | 
 | #define _SEARCH_PRIVATE | 
 | #define _GNU_SOURCE | 
 | #include <stdlib.h> | 
 | #include <search.h> | 
 |  | 
 |  | 
 | /* destroy tree recursively and call free_node on each node key */ | 
 | void tdestroy(void *root, void (*free_node)(void *)) | 
 | { | 
 |   node_t *p = (node_t *)root; | 
 |   if (!p) | 
 |     return; | 
 |  | 
 |   tdestroy(p->llink , free_node); | 
 |   tdestroy(p->rlink, free_node); | 
 |   free_node((void*)p->key); | 
 |   free(p); | 
 | } |