diff --git a/src/chunkedbuffer.cpp b/src/chunkedbuffer.cpp --- a/src/chunkedbuffer.cpp +++ b/src/chunkedbuffer.cpp @@ -58,6 +58,22 @@ void ChunkedBuffer::addSamples(double* s _size += size; } +void ChunkedBuffer::clear() +{ + // delete all chunks + for (auto chunk : chunks) + { + delete chunk; + } + chunks.clear(); + + numChunks = 0; + _size = 0; + + // create first chunk + addNewChunk(); +} + DataChunk* ChunkedBuffer::addNewChunk() { auto chunk = new DataChunk(_size, CHUNK_SIZE); diff --git a/tests/test.cpp b/tests/test.cpp --- a/tests/test.cpp +++ b/tests/test.cpp @@ -116,9 +116,9 @@ TEST_CASE("ChunkedBuffer adding data and REQUIRE(b.size() == CHUNK_SIZE*4); REQUIRE(b.boundingRect() == QRectF(0,10,CHUNK_SIZE*4,10)); - // TODO: clear - // b.clear(); - // REQUIRE(b.size() == 0); + // clear + b.clear(); + REQUIRE(b.size() == 0); } TEST_CASE("ChunkedBuffer accessing data", "[memory]")