From 72fa2d98e11cb897a359194b59c2482e4b2cf8cf Mon Sep 17 00:00:00 2001 From: reuk Date: Tue, 8 Feb 2022 15:09:48 +0000 Subject: [PATCH] AU Wrapper: Ensure that correct input channels are cleared before processing --- .../juce_audio_processors/format_types/juce_AU_Shared.h | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/modules/juce_audio_processors/format_types/juce_AU_Shared.h b/modules/juce_audio_processors/format_types/juce_AU_Shared.h index aad9a4f407..4b12cb17ba 100644 --- a/modules/juce_audio_processors/format_types/juce_AU_Shared.h +++ b/modules/juce_audio_processors/format_types/juce_AU_Shared.h @@ -232,8 +232,12 @@ struct AudioUnitHelpers private: void clearChannels (int begin, int end) { - for (auto i = begin; i < end; ++i) - zeromem (scratch.getWritePointer (i), sizeof (float) * (size_t) scratch.getNumSamples()); + if (begin <= end && end <= (int) channels.size()) + { + std::for_each (channels.begin() + begin, + channels.begin() + end, + [this] (float* ptr) { zeromem (ptr, sizeof (float) * (size_t) scratch.getNumSamples()); }); + } } float* uniqueBuffer (int idx, float* buffer) noexcept