simplify cxBufferAppend() because it does not need to care about flushing anymore default tip

Fri, 12 Dec 2025 15:09:57 +0100

author
Mike Becker <universe@uap-core.de>
date
Fri, 12 Dec 2025 15:09:57 +0100
changeset 1577
b5e6b91a98c3
parent 1576
7e19168d49d1

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;
 }
 

mercurial