diff -r 4fbfac557df8 -r 814d51173f20 src/buffer.c --- a/src/buffer.c Mon Apr 18 17:26:21 2022 +0200 +++ b/src/buffer.c Sun Apr 24 14:54:50 2022 +0200 @@ -36,7 +36,7 @@ CxBuffer *buffer, void *space, size_t capacity, - CxAllocator *allocator, + CxAllocator const *allocator, int flags ) { buffer->allocator = allocator; @@ -65,33 +65,6 @@ } } -CxBuffer *cxBufferExtract( - CxBuffer *src, - size_t start, - size_t length, - int flags -) { - if (src->size == 0 || length == 0 || - ((size_t) -1) - start < length || start + length > src->capacity) { - return NULL; - } - - CxBuffer *dst = (CxBuffer *) malloc(sizeof(cx_buffer_s)); - if (dst) { - dst->bytes = malloc(length); - if (!dst->bytes) { - free(dst); - return NULL; - } - dst->capacity = length; - dst->size = length; - dst->flags = flags | CX_BUFFER_FREE_CONTENTS; - dst->pos = 0; - memcpy(dst->bytes, src->bytes + start, length); - } - return dst; -} - int cxBufferSeek( CxBuffer *buffer, off_t offset, @@ -128,7 +101,13 @@ } -int cxBufferEof(CxBuffer *buffer) { +void cxBufferClear(CxBuffer *buffer) { + memset(buffer->bytes, 0, buffer->size); + buffer->size = 0; + buffer->pos = 0; +} + +int cxBufferEof(CxBuffer const *buffer) { return buffer->pos >= buffer->size; }