diff options
| author | Felipe Oliveira Carvalho <felipekde@gmail.com> | 2014-04-05 16:54:01 -0300 |
|---|---|---|
| committer | Thiago de Arruda <tpadilha84@gmail.com> | 2014-04-07 00:22:01 -0300 |
| commit | fac85c17248ab8c371fb311c1dd4bc1b2a7520cf (patch) | |
| tree | 431f4fb73eb063ac4a123c61c043a1d833b00682 /src/lib | |
| parent | fa02ada73257336641ebb29a9ea0b626c176c011 (diff) | |
| download | rneovim-fac85c17248ab8c371fb311c1dd4bc1b2a7520cf.tar.gz rneovim-fac85c17248ab8c371fb311c1dd4bc1b2a7520cf.tar.bz2 rneovim-fac85c17248ab8c371fb311c1dd4bc1b2a7520cf.zip | |
Implement xcalloc and use it in klist.h (use xrealloc as well)
Bonus: implement lalloc_clear and alloc_clear using xcalloc
Diffstat (limited to 'src/lib')
| -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; \ |