src/buffer.c

changeset 1577
b5e6b91a98c3
parent 1576
7e19168d49d1
--- 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