aboutsummaryrefslogtreecommitdiff
path: root/src/lib/klist.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/klist.h')
-rw-r--r--src/lib/klist.h10
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; \