From: René Scharfe Date: Thu, 4 Oct 2018 15:10:54 +0000 (+0200) Subject: khash: factor out kh_release_* X-Git-Tag: v2.20.0-rc0~154^2~2 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=9249ca26aca3ae3f21f812593c7a5498736ae29a;p=thirdparty%2Fgit.git khash: factor out kh_release_* Add a function for releasing the khash-internal allocations, but not the khash structure itself. It can be used with on-stack khash structs. Signed-off-by: Rene Scharfe Signed-off-by: Junio C Hamano --- diff --git a/khash.h b/khash.h index 07b4cc2e67..d10caa0c35 100644 --- a/khash.h +++ b/khash.h @@ -82,11 +82,16 @@ static const double __ac_HASH_UPPER = 0.77; SCOPE kh_##name##_t *kh_init_##name(void) { \ return (kh_##name##_t*)xcalloc(1, sizeof(kh_##name##_t)); \ } \ + SCOPE void kh_release_##name(kh_##name##_t *h) \ + { \ + free(h->flags); \ + free((void *)h->keys); \ + free((void *)h->vals); \ + } \ SCOPE void kh_destroy_##name(kh_##name##_t *h) \ { \ if (h) { \ - free((void *)h->keys); free(h->flags); \ - free((void *)h->vals); \ + kh_release_##name(h); \ free(h); \ } \ } \