src/buffer.c

changeset 683
aa0d09f2d81c
parent 673
60fb6aec157d
child 761
61d5197d612b
     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,

mercurial