From b2122f2db2f3018ceaf9d23641d4ac86016bc61a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ju=CC=88rgen=20Hock?= Date: Tue, 11 Jun 2024 19:52:02 +0200 Subject: [PATCH] Explicitly clear allocated memory --- .../src/main/cpp/de/jurihock/voicesmith/io/AudioBlock.cpp | 6 +++--- .../src/main/cpp/de/jurihock/voicesmith/io/AudioBlock.h | 2 +- .../main/cpp/de/jurihock/voicesmith/io/AudioBlockQueue.cpp | 5 +++++ .../main/cpp/de/jurihock/voicesmith/io/AudioBlockQueue.h | 4 +++- 4 files changed, 12 insertions(+), 5 deletions(-) diff --git a/voicesmith/src/main/cpp/de/jurihock/voicesmith/io/AudioBlock.cpp b/voicesmith/src/main/cpp/de/jurihock/voicesmith/io/AudioBlock.cpp index 3e922f5..0846d2d 100644 --- a/voicesmith/src/main/cpp/de/jurihock/voicesmith/io/AudioBlock.cpp +++ b/voicesmith/src/main/cpp/de/jurihock/voicesmith/io/AudioBlock.cpp @@ -2,12 +2,12 @@ #include -AudioBlock::AudioBlock(const std::span data_to_attach) : - data(0), view(data_to_attach) {} - AudioBlock::AudioBlock(const size_t size_to_allocate) : data(size_to_allocate), view(data) {} +AudioBlock::AudioBlock(const std::span data_to_attach) : + data(0), view(data_to_attach) {} + size_t AudioBlock::size() const { return view.size(); } diff --git a/voicesmith/src/main/cpp/de/jurihock/voicesmith/io/AudioBlock.h b/voicesmith/src/main/cpp/de/jurihock/voicesmith/io/AudioBlock.h index 873aa72..04fa8eb 100644 --- a/voicesmith/src/main/cpp/de/jurihock/voicesmith/io/AudioBlock.h +++ b/voicesmith/src/main/cpp/de/jurihock/voicesmith/io/AudioBlock.h @@ -6,8 +6,8 @@ class AudioBlock final { public: - explicit AudioBlock(const std::span data_to_attach); explicit AudioBlock(const size_t size_to_allocate); + explicit AudioBlock(const std::span data_to_attach); size_t size() const; diff --git a/voicesmith/src/main/cpp/de/jurihock/voicesmith/io/AudioBlockQueue.cpp b/voicesmith/src/main/cpp/de/jurihock/voicesmith/io/AudioBlockQueue.cpp index 4a723c7..c1f89b3 100644 --- a/voicesmith/src/main/cpp/de/jurihock/voicesmith/io/AudioBlockQueue.cpp +++ b/voicesmith/src/main/cpp/de/jurihock/voicesmith/io/AudioBlockQueue.cpp @@ -2,6 +2,11 @@ #include +AudioBlockQueue::~AudioBlockQueue() { + blocks.clear(); + memory.clear(); +} + void AudioBlockQueue::resize(const size_t queuesize, const size_t blocksize) { FIFO::clear(); diff --git a/voicesmith/src/main/cpp/de/jurihock/voicesmith/io/AudioBlockQueue.h b/voicesmith/src/main/cpp/de/jurihock/voicesmith/io/AudioBlockQueue.h index ca8bc03..f6087ca 100644 --- a/voicesmith/src/main/cpp/de/jurihock/voicesmith/io/AudioBlockQueue.h +++ b/voicesmith/src/main/cpp/de/jurihock/voicesmith/io/AudioBlockQueue.h @@ -9,11 +9,13 @@ class AudioBlockQueue final : public FIFO { public: + ~AudioBlockQueue(); + void resize(const size_t queuesize, const size_t blocksize); private: - std::vector memory; std::vector> blocks; + std::vector memory; };