append data at limit, not at position
[ecparse.git] / GrowingBuffer.cpp
index 602084c..b5dea96 100644 (file)
@@ -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() {