diff options
Diffstat (limited to 'lib/new.c')
| -rw-r--r-- | lib/new.c | 11 |
1 files changed, 8 insertions, 3 deletions
@@ -24,13 +24,18 @@ #include "aplwc_internal.h" struct aplwc * -aplwc_new(void) +aplwc_new(void *(*alloc)(size_t), void (*free)(void *), void *(*realloc)(void *, size_t)) { - struct aplwc *aplwc = malloc(sizeof(*aplwc)); + struct aplwc *aplwc = alloc(sizeof(*aplwc)); memset(aplwc, 0, sizeof(*aplwc)); - aplwc->syscmds = malloc(sizeof(aplwc->syscmds[0])); + aplwc->alloc = alloc; + aplwc->free = free; + aplwc->realloc = realloc; + + aplwc->syscmds = aplwc->alloc(sizeof(aplwc->syscmds[0])); aplwc->syscmds[0] = NULL; + aplwc->running = true; return aplwc; } |