X-Git-Url: https://git.pterodactylus.net/?p=ecparse.git;a=blobdiff_plain;f=GrowingBuffer.cpp;fp=GrowingBuffer.cpp;h=b5dea96c24910a9d35b868b4aebbb2d0b7fba082;hp=602084cabb975609deacce65683f46bc2c0d9bba;hb=403ab22b5e05c4d1cdfd3b6c5993bd0240c8d4d8;hpb=6cdb1a3a8775e9816948c9366c75d212fbd986c4 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() {