summaryrefslogtreecommitdiff
path: root/lib/hash.c
diff options
context:
space:
mode:
authorDonatas Abraitis <donatas@opensourcerouting.org>2023-03-23 14:08:29 +0200
committerGitHub <noreply@github.com>2023-03-23 14:08:29 +0200
commit6927446645221898256a6ec37653bb31a301db72 (patch)
tree3039c1a7b7ee98a0da74fe99f7f9ef571825a3fa /lib/hash.c
parent9cc377d4d7ccae8a318d0162c5d0d6a6754d8b0a (diff)
parentd8bc11a592110abdd14d11dfcb2ce623653ecab5 (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.c10
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;