From 21e28fdca240aa023d4c03ed02da792e6030eef4 Mon Sep 17 00:00:00 2001 From: Robbert van der Helm <mail@robbertvanderhelm.nl> Date: Wed, 27 Apr 2022 16:51:47 +0200 Subject: [PATCH] Handle hosts providing zero output channels --- src/wrapper/vst3/wrapper.rs | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/wrapper/vst3/wrapper.rs b/src/wrapper/vst3/wrapper.rs index 80a43a19..572ed414 100644 --- a/src/wrapper/vst3/wrapper.rs +++ b/src/wrapper/vst3/wrapper.rs @@ -975,8 +975,12 @@ impl<P: Vst3Plugin> IAudioProcessor for Wrapper<P> { let num_output_channels = (*data.outputs).num_channels as usize; nih_debug_assert_eq!(num_output_channels, output_slices.len()); - for (output_channel_idx, output_channel_slice) in - output_slices.iter_mut().enumerate() + // In case the host does provide fewer output channels than we expect, we + // should still try to handle that gracefully + for (output_channel_idx, output_channel_slice) in output_slices + .iter_mut() + .take(num_output_channels) + .enumerate() { // If `P::SAMPLE_ACCURATE_AUTOMATION` is set, then we may be iterating // over the buffer in smaller sections.