From: David ‘Bombe’ Roden Date: Sat, 5 Jul 2008 13:15:38 +0000 (+0200) Subject: append data at limit, not at position X-Git-Tag: 0.1~50 X-Git-Url: https://git.pterodactylus.net/?p=ecparse.git;a=commitdiff_plain;h=403ab22b5e05c4d1cdfd3b6c5993bd0240c8d4d8 append data at limit, not at position advance limit when writing --- 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() {