diff options
Diffstat (limited to 'src/lib/klist.h')
-rw-r--r-- | src/lib/klist.h | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/src/lib/klist.h b/src/lib/klist.h index 1061d9869e..bb60449915 100644 --- a/src/lib/klist.h +++ b/src/lib/klist.h @@ -28,13 +28,15 @@ #include <stdlib.h> +#include "memory.h" + #define KMEMPOOL_INIT(name, kmptype_t, kmpfree_f) \ typedef struct { \ size_t cnt, n, max; \ kmptype_t **buf; \ } kmp_##name##_t; \ static inline kmp_##name##_t *kmp_init_##name() { \ - return calloc(1, sizeof(kmp_##name##_t)); \ + return xcalloc(1, sizeof(kmp_##name##_t)); \ } \ static inline void kmp_destroy_##name(kmp_##name##_t *mp) { \ size_t k; \ @@ -45,14 +47,14 @@ } \ static inline kmptype_t *kmp_alloc_##name(kmp_##name##_t *mp) { \ ++mp->cnt; \ - if (mp->n == 0) return calloc(1, sizeof(kmptype_t)); \ + if (mp->n == 0) return xcalloc(1, sizeof(kmptype_t)); \ return mp->buf[--mp->n]; \ } \ static inline void kmp_free_##name(kmp_##name##_t *mp, kmptype_t *p) { \ --mp->cnt; \ if (mp->n == mp->max) { \ mp->max = mp->max? mp->max<<1 : 16; \ - mp->buf = realloc(mp->buf, sizeof(void*) * mp->max); \ + mp->buf = xrealloc(mp->buf, sizeof(void*) * mp->max); \ } \ mp->buf[mp->n++] = p; \ } @@ -76,7 +78,7 @@ size_t size; \ } kl_##name##_t; \ static inline kl_##name##_t *kl_init_##name() { \ - kl_##name##_t *kl = calloc(1, sizeof(kl_##name##_t)); \ + kl_##name##_t *kl = xcalloc(1, sizeof(kl_##name##_t)); \ kl->mp = kmp_init(name); \ kl->head = kl->tail = kmp_alloc(name, kl->mp); \ kl->head->next = 0; \ |