1.1 --- a/src/buffer.c Sun Apr 16 21:09:25 2023 +0200 1.2 +++ b/src/buffer.c Sun Apr 16 21:35:08 2023 +0200 1.3 @@ -70,6 +70,29 @@ 1.4 } 1.5 } 1.6 1.7 +CxBuffer *cxBufferCreate( 1.8 + void *space, 1.9 + size_t capacity, 1.10 + CxAllocator const *allocator, 1.11 + int flags 1.12 +) { 1.13 + CxBuffer *buf = cxMalloc(allocator, sizeof(CxBuffer)); 1.14 + if (buf == NULL) return NULL; 1.15 + if (0 == cxBufferInit(buf, space, capacity, allocator, flags)) { 1.16 + return buf; 1.17 + } else { 1.18 + cxFree(allocator, buf); 1.19 + return NULL; 1.20 + } 1.21 +} 1.22 + 1.23 +void cxBufferFree(CxBuffer *buffer) { 1.24 + if ((buffer->flags & CX_BUFFER_FREE_CONTENTS) == CX_BUFFER_FREE_CONTENTS) { 1.25 + cxFree(buffer->allocator, buffer->bytes); 1.26 + } 1.27 + cxFree(buffer->allocator, buffer); 1.28 +} 1.29 + 1.30 int cxBufferSeek( 1.31 CxBuffer *buffer, 1.32 off_t offset,