mirror of
https://github.com/fluencelabs/musl
synced 2025-04-25 07:12:15 +00:00
search: add tdestroy (gnu extension)
This commit is contained in:
parent
b47fdcdef8
commit
d197d6421c
@ -38,6 +38,8 @@ struct qelem {
|
||||
struct qelem *q_forw, *q_back;
|
||||
char q_data[1];
|
||||
};
|
||||
|
||||
void tdestroy(void *, void (*)(void *));
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
|
21
src/search/tdestroy.c
Normal file
21
src/search/tdestroy.c
Normal file
@ -0,0 +1,21 @@
|
||||
#define _GNU_SOURCE
|
||||
#include <stdlib.h>
|
||||
#include <search.h>
|
||||
|
||||
struct node {
|
||||
void *key;
|
||||
struct node *left;
|
||||
struct node *right;
|
||||
};
|
||||
|
||||
void tdestroy(void *root, void (*freekey)(void *))
|
||||
{
|
||||
struct node *r = root;
|
||||
|
||||
if (r == 0)
|
||||
return;
|
||||
tdestroy(r->left, freekey);
|
||||
tdestroy(r->right, freekey);
|
||||
freekey(r->key);
|
||||
free(r);
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user