Fri, 12 Dec 2025 15:09:57 +0100
simplify cxBufferAppend() because it does not need to care about flushing anymore
relates to #185
| src/buffer.c | file | annotate | diff | comparison | revisions |
--- a/src/buffer.c Fri Dec 12 15:07:38 2025 +0100 +++ b/src/buffer.c Fri Dec 12 15:09:57 2025 +0100 @@ -370,20 +370,10 @@ // trivial case if (size == 0 || nitems == 0) return 0; - size_t pos = buffer->pos; - size_t append_pos = buffer->size; - buffer->pos = append_pos; - size_t written = cxBufferWrite(ptr, size, nitems, buffer); - // the buffer might have been flushed - // we must compute a possible delta for the position - // expected: pos = append_pos + written - // -> if this is not the case, there is a delta - size_t delta = append_pos + written*size - buffer->pos; - if (delta > pos) { - buffer->pos = 0; - } else { - buffer->pos = pos - delta; - } + const size_t pos = buffer->pos; + buffer->pos = buffer->size; + const size_t written = cxBufferWrite(ptr, size, nitems, buffer); + buffer->pos = pos; return written; }