1
0
Fork 0

Fix resizing aux input storage on buffer size

This nested `resize_with()` of course wouldn't resize the inner vectors
of the outer ones were already the correct size.
This commit is contained in:
Robbert van der Helm 2022-09-11 16:41:31 +02:00
parent 4c9a2726f3
commit b883a611ab
2 changed files with 20 additions and 15 deletions

View file

@ -1719,12 +1719,15 @@ impl<P: ClapPlugin> Wrapper<P> {
// inputs. The slices will be assigned in the process function as this object may have // inputs. The slices will be assigned in the process function as this object may have
// been moved before then. // been moved before then.
let mut aux_input_storage = wrapper.aux_input_storage.borrow_mut(); let mut aux_input_storage = wrapper.aux_input_storage.borrow_mut();
aux_input_storage.resize_with(bus_config.aux_input_busses.num_busses as usize, || { aux_input_storage
vec![ .resize_with(bus_config.aux_input_busses.num_busses as usize, Vec::new);
vec![0.0; max_frames_count as usize]; for bus_storage in aux_input_storage.iter_mut() {
bus_config.aux_input_busses.num_channels as usize bus_storage
] .resize_with(bus_config.aux_input_busses.num_channels as usize, Vec::new);
}); for channel_storage in bus_storage {
channel_storage.resize(max_frames_count as usize, 0.0);
}
}
let mut aux_input_buffers = wrapper.aux_input_buffers.borrow_mut(); let mut aux_input_buffers = wrapper.aux_input_buffers.borrow_mut();
aux_input_buffers.resize_with( aux_input_buffers.resize_with(

View file

@ -413,15 +413,17 @@ impl<P: Vst3Plugin> IComponent for Wrapper<P> {
// sidechain inputs. The slices will be assigned in the process function as this // sidechain inputs. The slices will be assigned in the process function as this
// object may have been moved before then. // object may have been moved before then.
let mut aux_input_storage = self.inner.aux_input_storage.borrow_mut(); let mut aux_input_storage = self.inner.aux_input_storage.borrow_mut();
aux_input_storage.resize_with( aux_input_storage
bus_config.aux_input_busses.num_busses as usize, .resize_with(bus_config.aux_input_busses.num_busses as usize, Vec::new);
|| { for bus_storage in aux_input_storage.iter_mut() {
vec![ bus_storage.resize_with(
vec![0.0; buffer_config.max_buffer_size as usize]; bus_config.aux_input_busses.num_channels as usize,
bus_config.aux_input_busses.num_channels as usize Vec::new,
] );
}, for channel_storage in bus_storage {
); channel_storage.resize(buffer_config.max_buffer_size as usize, 0.0);
}
}
let mut aux_input_buffers = self.inner.aux_input_buffers.borrow_mut(); let mut aux_input_buffers = self.inner.aux_input_buffers.borrow_mut();
aux_input_buffers.resize_with( aux_input_buffers.resize_with(