append data at limit, not at position
authorDavid ‘Bombe’ Roden <bombe@pterodactylus.net>
Sat, 5 Jul 2008 13:15:38 +0000 (15:15 +0200)
committerDavid ‘Bombe’ Roden <bombe@pterodactylus.net>
Sat, 5 Jul 2008 13:15:44 +0000 (15:15 +0200)
advance limit when writing

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) {
 }
 
 void GrowingBuffer::write(const void* buffer, size_t length) {
-       if (length > (size - position)) {
+       if (length > (size - limit)) {
                int newSize = size;
                do {
                        newSize *= 2;
                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;
        }
                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() {
 }
 
 void GrowingBuffer::cut() {