src/buffer.c

changeset 529
814d51173f20
parent 501
9a08f5e515cc
child 530
e866516cac17
     1.1 --- a/src/buffer.c	Mon Apr 18 17:26:21 2022 +0200
     1.2 +++ b/src/buffer.c	Sun Apr 24 14:54:50 2022 +0200
     1.3 @@ -36,7 +36,7 @@
     1.4          CxBuffer *buffer,
     1.5          void *space,
     1.6          size_t capacity,
     1.7 -        CxAllocator *allocator,
     1.8 +        CxAllocator const *allocator,
     1.9          int flags
    1.10  ) {
    1.11      buffer->allocator = allocator;
    1.12 @@ -65,33 +65,6 @@
    1.13      }
    1.14  }
    1.15  
    1.16 -CxBuffer *cxBufferExtract(
    1.17 -        CxBuffer *src,
    1.18 -        size_t start,
    1.19 -        size_t length,
    1.20 -        int flags
    1.21 -) {
    1.22 -    if (src->size == 0 || length == 0 ||
    1.23 -        ((size_t) -1) - start < length || start + length > src->capacity) {
    1.24 -        return NULL;
    1.25 -    }
    1.26 -
    1.27 -    CxBuffer *dst = (CxBuffer *) malloc(sizeof(cx_buffer_s));
    1.28 -    if (dst) {
    1.29 -        dst->bytes = malloc(length);
    1.30 -        if (!dst->bytes) {
    1.31 -            free(dst);
    1.32 -            return NULL;
    1.33 -        }
    1.34 -        dst->capacity = length;
    1.35 -        dst->size = length;
    1.36 -        dst->flags = flags | CX_BUFFER_FREE_CONTENTS;
    1.37 -        dst->pos = 0;
    1.38 -        memcpy(dst->bytes, src->bytes + start, length);
    1.39 -    }
    1.40 -    return dst;
    1.41 -}
    1.42 -
    1.43  int cxBufferSeek(
    1.44          CxBuffer *buffer,
    1.45          off_t offset,
    1.46 @@ -128,7 +101,13 @@
    1.47  
    1.48  }
    1.49  
    1.50 -int cxBufferEof(CxBuffer *buffer) {
    1.51 +void cxBufferClear(CxBuffer *buffer) {
    1.52 +    memset(buffer->bytes, 0, buffer->size);
    1.53 +    buffer->size = 0;
    1.54 +    buffer->pos = 0;
    1.55 +}
    1.56 +
    1.57 +int cxBufferEof(CxBuffer const *buffer) {
    1.58      return buffer->pos >= buffer->size;
    1.59  }
    1.60  

mercurial