diff options
| author | Donatas Abraitis <donatas@opensourcerouting.org> | 2023-03-23 14:08:29 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-03-23 14:08:29 +0200 |
| commit | 6927446645221898256a6ec37653bb31a301db72 (patch) | |
| tree | 3039c1a7b7ee98a0da74fe99f7f9ef571825a3fa /lib/hash.c | |
| parent | 9cc377d4d7ccae8a318d0162c5d0d6a6754d8b0a (diff) | |
| parent | d8bc11a592110abdd14d11dfcb2ce623653ecab5 (diff) | |
Merge pull request #13074 from donaldsharp/hash_clean_and_free
*: Add a hash_clean_and_free() function
Diffstat (limited to 'lib/hash.c')
| -rw-r--r-- | lib/hash.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/lib/hash.c b/lib/hash.c index 97a77a2b9a..df56243985 100644 --- a/lib/hash.c +++ b/lib/hash.c @@ -297,6 +297,16 @@ void hash_clean(struct hash *hash, void (*free_func)(void *)) hash->stats.empty = hash->size; } +void hash_clean_and_free(struct hash **hash, void (*free_func)(void *)) +{ + if (!*hash) + return; + + hash_clean(*hash, free_func); + hash_free(*hash); + *hash = NULL; +} + static void hash_to_list_iter(struct hash_bucket *hb, void *arg) { struct list *list = arg; |
