X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=GrowingBuffer.cpp;h=602084cabb975609deacce65683f46bc2c0d9bba;hb=6cdb1a3a8775e9816948c9366c75d212fbd986c4;hp=492f2442488e8608d57da8a93320d7d3ef5a7ae8;hpb=b24b03abb90553821d627e87dac5ec07d81fd09c;p=ecparse.git diff --git a/GrowingBuffer.cpp b/GrowingBuffer.cpp index 492f244..602084c 100644 --- a/GrowingBuffer.cpp +++ b/GrowingBuffer.cpp @@ -4,6 +4,7 @@ #include #include +#include #include "GrowingBuffer.h" GrowingBuffer::GrowingBuffer(size_t initialSize) { @@ -37,7 +38,7 @@ void GrowingBuffer::seek(size_t position) { void* GrowingBuffer::read(void* buffer, size_t length) { size_t bytesToCopy = (length > (limit - position)) ? (limit - position) : length; - memcpy(buffer, (char*) data + position, bytesToCopy); + memcpy(buffer, (ptrdiff_t*) data + position, bytesToCopy); position += bytesToCopy; return buffer; } @@ -53,7 +54,13 @@ void GrowingBuffer::write(const void* buffer, size_t length) { free(data); data = newData; } - memcpy((char*) data + position, buffer, length); + memcpy((ptrdiff_t*) data + position, buffer, length); +} + +void GrowingBuffer::cut() { + memcpy(data, (ptrdiff_t*) data + position, position); + limit = position; + position = 0; } void GrowingBuffer::truncate() {