From 403ab22b5e05c4d1cdfd3b6c5993bd0240c8d4d8 Mon Sep 17 00:00:00 2001 From: =?utf8?q?David=20=E2=80=98Bombe=E2=80=99=20Roden?= Date: Sat, 5 Jul 2008 15:15:38 +0200 Subject: [PATCH] append data at limit, not at position advance limit when writing --- GrowingBuffer.cpp | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/GrowingBuffer.cpp b/GrowingBuffer.cpp index 602084c..b5dea96 100644 --- a/GrowingBuffer.cpp +++ b/GrowingBuffer.cpp @@ -44,17 +44,18 @@ void* GrowingBuffer::read(void* buffer, size_t length) { } void GrowingBuffer::write(const void* buffer, size_t length) { - if (length > (size - position)) { + if (length > (size - limit)) { int newSize = size; do { newSize *= 2; - } while (length > (newSize - position)); + } while (length > (newSize - limit)); void* newData = malloc(newSize); memcpy(newData, data, position); free(data); data = newData; } - memcpy((ptrdiff_t*) data + position, buffer, length); + memcpy((ptrdiff_t*) data + limit, buffer, length); + limit += length; } void GrowingBuffer::cut() { -- 2.7.4