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 06e739d863..4d19ce32b7 100644 --- a/modules/juce_audio_processors/format_types/juce_AU_Shared.h +++ b/modules/juce_audio_processors/format_types/juce_AU_Shared.h @@ -157,13 +157,10 @@ struct AudioUnitHelpers AudioBuffer& getBuffer (UInt32 frames) noexcept { - #if JUCE_DEBUG - for (int i = 0; i < (int) channels.size(); ++i) - jassert (channels[(size_t) i] != nullptr); - #endif + jassert (std::none_of (channels.begin(), channels.end(), [] (auto* x) { return x == nullptr; })); - if (! channels.empty()) - mutableBuffer.setDataToReferTo (channels.data(), (int) channels.size(), static_cast (frames)); + const auto channelPtr = channels.empty() ? scratch.getArrayOfWritePointers() : channels.data(); + mutableBuffer.setDataToReferTo (channelPtr, (int) channels.size(), static_cast (frames)); return mutableBuffer; }