From ff0fb0e5a5ef0da28d74d423e2c8ca534e549a4a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20Andr=C3=A9=20Tanner?= Date: Sat, 16 May 2015 15:28:09 +0200 Subject: Cleanup general purpose buffer API Introduce buffer_init to initialize a stack allocated buffer. Rename buffer_{alloc,free} functions because they do something different than the usual convention. They operate on the underlying buffer data but do not allocate/free an actual Buffer struct. --- buffer.c | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) (limited to 'buffer.c') diff --git a/buffer.c b/buffer.c index 6763676..1a3c7db 100644 --- a/buffer.c +++ b/buffer.c @@ -6,7 +6,11 @@ #define BUF_SIZE 1024 -bool buffer_alloc(Buffer *buf, size_t size) { +void buffer_init(Buffer *buf) { + memset(buf, 0, sizeof *buf); +} + +bool buffer_grow(Buffer *buf, size_t size) { if (size < BUF_SIZE) size = BUF_SIZE; if (buf->size < size) { @@ -25,17 +29,15 @@ void buffer_truncate(Buffer *buf) { buf->len = 0; } -void buffer_free(Buffer *buf) { +void buffer_release(Buffer *buf) { if (!buf) return; free(buf->data); - buf->data = NULL; - buf->len = 0; - buf->size = 0; + buffer_init(buf); } bool buffer_put(Buffer *buf, const void *data, size_t len) { - if (!buffer_alloc(buf, len)) + if (!buffer_grow(buf, len)) return false; memcpy(buf->data, data, len); buf->len = len; @@ -44,7 +46,7 @@ bool buffer_put(Buffer *buf, const void *data, size_t len) { bool buffer_append(Buffer *buf, const void *data, size_t len) { size_t rem = buf->size - buf->len; - if (len > rem && !buffer_alloc(buf, buf->size + len - rem)) + if (len > rem && !buffer_grow(buf, buf->size + len - rem)) return false; memcpy(buf->data + buf->len, data, len); buf->len += len; -- cgit v1.2.3