Browse Source

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 <l.s.r@web.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
maint
René Scharfe 6 years ago committed by Junio C Hamano
parent
commit
9249ca26ac
  1. 9
      khash.h

9
khash.h

@ -82,11 +82,16 @@ static const double __ac_HASH_UPPER = 0.77; @@ -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); \
} \
} \

Loading…
Cancel
Save