mirror of
https://github.com/robbert-vdh/nih-plug.git
synced 2026-07-01 10:46:55 +00:00
Make implicit autorefs explicit in buffer code
This was triggering a new deny-by-default lint in recent nightly versions.
This commit is contained in:
@@ -95,12 +95,12 @@ impl<'slice, 'sample> Iterator for BlockChannelsIter<'slice, 'sample> {
|
|||||||
|
|
||||||
#[inline]
|
#[inline]
|
||||||
fn next(&mut self) -> Option<Self::Item> {
|
fn next(&mut self) -> Option<Self::Item> {
|
||||||
if self.current_channel < unsafe { (*self.buffers).len() } {
|
if self.current_channel < unsafe { (&(*self.buffers)).len() } {
|
||||||
// SAFETY: These bounds have already been checked
|
// SAFETY: These bounds have already been checked
|
||||||
// SAFETY: It is also not possible to have multiple mutable references to the same
|
// SAFETY: It is also not possible to have multiple mutable references to the same
|
||||||
// sample at the same time
|
// sample at the same time
|
||||||
let slice = unsafe {
|
let slice = unsafe {
|
||||||
(*self.buffers)
|
(&mut (*self.buffers))
|
||||||
.get_unchecked_mut(self.current_channel)
|
.get_unchecked_mut(self.current_channel)
|
||||||
.get_unchecked_mut(self.current_block_start..self.current_block_end)
|
.get_unchecked_mut(self.current_block_start..self.current_block_end)
|
||||||
};
|
};
|
||||||
@@ -115,7 +115,7 @@ impl<'slice, 'sample> Iterator for BlockChannelsIter<'slice, 'sample> {
|
|||||||
|
|
||||||
#[inline]
|
#[inline]
|
||||||
fn size_hint(&self) -> (usize, Option<usize>) {
|
fn size_hint(&self) -> (usize, Option<usize>) {
|
||||||
let remaining = unsafe { (*self.buffers).len() } - self.current_channel;
|
let remaining = unsafe { (&(*self.buffers)).len() } - self.current_channel;
|
||||||
|
|
||||||
(remaining, Some(remaining))
|
(remaining, Some(remaining))
|
||||||
}
|
}
|
||||||
@@ -134,7 +134,7 @@ impl<'slice, 'sample> Block<'slice, 'sample> {
|
|||||||
/// Returns the number of channels in this buffer.
|
/// Returns the number of channels in this buffer.
|
||||||
#[inline]
|
#[inline]
|
||||||
pub fn channels(&self) -> usize {
|
pub fn channels(&self) -> usize {
|
||||||
unsafe { (*self.buffers).len() }
|
unsafe { (&(*self.buffers)).len() }
|
||||||
}
|
}
|
||||||
|
|
||||||
/// A resetting iterator. This lets you iterate over the same block multiple times. Otherwise
|
/// A resetting iterator. This lets you iterate over the same block multiple times. Otherwise
|
||||||
@@ -171,7 +171,7 @@ impl<'slice, 'sample> Block<'slice, 'sample> {
|
|||||||
// SAFETY: The block bound has already been checked
|
// SAFETY: The block bound has already been checked
|
||||||
unsafe {
|
unsafe {
|
||||||
Some(
|
Some(
|
||||||
(*self.buffers)
|
(&(*self.buffers))
|
||||||
.get(channel_index)?
|
.get(channel_index)?
|
||||||
.get_unchecked(self.current_block_start..self.current_block_end),
|
.get_unchecked(self.current_block_start..self.current_block_end),
|
||||||
)
|
)
|
||||||
@@ -185,7 +185,7 @@ impl<'slice, 'sample> Block<'slice, 'sample> {
|
|||||||
/// `channel_index` must be in the range `0..Self::len()`.
|
/// `channel_index` must be in the range `0..Self::len()`.
|
||||||
#[inline]
|
#[inline]
|
||||||
pub unsafe fn get_unchecked(&self, channel_index: usize) -> &[f32] {
|
pub unsafe fn get_unchecked(&self, channel_index: usize) -> &[f32] {
|
||||||
(*self.buffers)
|
(&(*self.buffers))
|
||||||
.get_unchecked(channel_index)
|
.get_unchecked(channel_index)
|
||||||
.get_unchecked(self.current_block_start..self.current_block_end)
|
.get_unchecked(self.current_block_start..self.current_block_end)
|
||||||
}
|
}
|
||||||
@@ -197,7 +197,7 @@ impl<'slice, 'sample> Block<'slice, 'sample> {
|
|||||||
// SAFETY: The block bound has already been checked
|
// SAFETY: The block bound has already been checked
|
||||||
unsafe {
|
unsafe {
|
||||||
Some(
|
Some(
|
||||||
(*self.buffers)
|
(&mut (*self.buffers))
|
||||||
.get_mut(channel_index)?
|
.get_mut(channel_index)?
|
||||||
.get_unchecked_mut(self.current_block_start..self.current_block_end),
|
.get_unchecked_mut(self.current_block_start..self.current_block_end),
|
||||||
)
|
)
|
||||||
@@ -211,7 +211,7 @@ impl<'slice, 'sample> Block<'slice, 'sample> {
|
|||||||
/// `channel_index` must be in the range `0..Self::len()`.
|
/// `channel_index` must be in the range `0..Self::len()`.
|
||||||
#[inline]
|
#[inline]
|
||||||
pub unsafe fn get_unchecked_mut(&mut self, channel_index: usize) -> &mut [f32] {
|
pub unsafe fn get_unchecked_mut(&mut self, channel_index: usize) -> &mut [f32] {
|
||||||
(*self.buffers)
|
(&mut (*self.buffers))
|
||||||
.get_unchecked_mut(channel_index)
|
.get_unchecked_mut(channel_index)
|
||||||
.get_unchecked_mut(self.current_block_start..self.current_block_end)
|
.get_unchecked_mut(self.current_block_start..self.current_block_end)
|
||||||
}
|
}
|
||||||
@@ -238,7 +238,7 @@ impl<'slice, 'sample> Block<'slice, 'sample> {
|
|||||||
let mut values = [0.0; LANES];
|
let mut values = [0.0; LANES];
|
||||||
for (channel_idx, value) in values.iter_mut().enumerate().take(used_lanes) {
|
for (channel_idx, value) in values.iter_mut().enumerate().take(used_lanes) {
|
||||||
*value = unsafe {
|
*value = unsafe {
|
||||||
*(*self.buffers)
|
*(&(*self.buffers))
|
||||||
.get_unchecked(channel_idx)
|
.get_unchecked(channel_idx)
|
||||||
.get_unchecked(self.current_block_start + sample_index)
|
.get_unchecked(self.current_block_start + sample_index)
|
||||||
};
|
};
|
||||||
@@ -264,7 +264,7 @@ impl<'slice, 'sample> Block<'slice, 'sample> {
|
|||||||
{
|
{
|
||||||
let mut values = [0.0; LANES];
|
let mut values = [0.0; LANES];
|
||||||
for (channel_idx, value) in values.iter_mut().enumerate() {
|
for (channel_idx, value) in values.iter_mut().enumerate() {
|
||||||
*value = *(*self.buffers)
|
*value = *(&(*self.buffers))
|
||||||
.get_unchecked(channel_idx)
|
.get_unchecked(channel_idx)
|
||||||
.get_unchecked(self.current_block_start + sample_index);
|
.get_unchecked(self.current_block_start + sample_index);
|
||||||
}
|
}
|
||||||
@@ -296,7 +296,7 @@ impl<'slice, 'sample> Block<'slice, 'sample> {
|
|||||||
let values = vector.to_array();
|
let values = vector.to_array();
|
||||||
for (channel_idx, value) in values.into_iter().enumerate().take(used_lanes) {
|
for (channel_idx, value) in values.into_iter().enumerate().take(used_lanes) {
|
||||||
*unsafe {
|
*unsafe {
|
||||||
(*self.buffers)
|
(&mut (*self.buffers))
|
||||||
.get_unchecked_mut(channel_idx)
|
.get_unchecked_mut(channel_idx)
|
||||||
.get_unchecked_mut(self.current_block_start + sample_index)
|
.get_unchecked_mut(self.current_block_start + sample_index)
|
||||||
} = value;
|
} = value;
|
||||||
@@ -324,7 +324,7 @@ impl<'slice, 'sample> Block<'slice, 'sample> {
|
|||||||
{
|
{
|
||||||
let values = vector.to_array();
|
let values = vector.to_array();
|
||||||
for (channel_idx, value) in values.into_iter().enumerate() {
|
for (channel_idx, value) in values.into_iter().enumerate() {
|
||||||
*(*self.buffers)
|
*(&mut (*self.buffers))
|
||||||
.get_unchecked_mut(channel_idx)
|
.get_unchecked_mut(channel_idx)
|
||||||
.get_unchecked_mut(self.current_block_start + sample_index) = value;
|
.get_unchecked_mut(self.current_block_start + sample_index) = value;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -87,12 +87,12 @@ impl<'slice, 'sample> Iterator for ChannelSamplesIter<'slice, 'sample> {
|
|||||||
|
|
||||||
#[inline]
|
#[inline]
|
||||||
fn next(&mut self) -> Option<Self::Item> {
|
fn next(&mut self) -> Option<Self::Item> {
|
||||||
if self.current_channel < unsafe { (*self.buffers).len() } {
|
if self.current_channel < unsafe { (&(*self.buffers)).len() } {
|
||||||
// SAFETY: These bounds have already been checked
|
// SAFETY: These bounds have already been checked
|
||||||
// SAFETY: It is also not possible to have multiple mutable references to the same
|
// SAFETY: It is also not possible to have multiple mutable references to the same
|
||||||
// sample at the same time
|
// sample at the same time
|
||||||
let sample = unsafe {
|
let sample = unsafe {
|
||||||
(*self.buffers)
|
(&mut (*self.buffers))
|
||||||
.get_unchecked_mut(self.current_channel)
|
.get_unchecked_mut(self.current_channel)
|
||||||
.get_unchecked_mut(self.current_sample)
|
.get_unchecked_mut(self.current_sample)
|
||||||
};
|
};
|
||||||
@@ -107,7 +107,7 @@ impl<'slice, 'sample> Iterator for ChannelSamplesIter<'slice, 'sample> {
|
|||||||
|
|
||||||
#[inline]
|
#[inline]
|
||||||
fn size_hint(&self) -> (usize, Option<usize>) {
|
fn size_hint(&self) -> (usize, Option<usize>) {
|
||||||
let remaining = unsafe { (*self.buffers).len() } - self.current_channel;
|
let remaining = unsafe { (&(*self.buffers)).len() } - self.current_channel;
|
||||||
|
|
||||||
(remaining, Some(remaining))
|
(remaining, Some(remaining))
|
||||||
}
|
}
|
||||||
@@ -121,7 +121,7 @@ impl<'slice, 'sample> ChannelSamples<'slice, 'sample> {
|
|||||||
#[allow(clippy::len_without_is_empty)]
|
#[allow(clippy::len_without_is_empty)]
|
||||||
#[inline]
|
#[inline]
|
||||||
pub fn len(&self) -> usize {
|
pub fn len(&self) -> usize {
|
||||||
unsafe { (*self.buffers).len() }
|
unsafe { (&(*self.buffers)).len() }
|
||||||
}
|
}
|
||||||
|
|
||||||
/// A resetting iterator. This lets you iterate over the same channels multiple times. Otherwise
|
/// A resetting iterator. This lets you iterate over the same channels multiple times. Otherwise
|
||||||
@@ -144,7 +144,7 @@ impl<'slice, 'sample> ChannelSamples<'slice, 'sample> {
|
|||||||
// SAFETY: The sample bound has already been checked
|
// SAFETY: The sample bound has already been checked
|
||||||
unsafe {
|
unsafe {
|
||||||
Some(
|
Some(
|
||||||
(*self.buffers)
|
(&mut (*self.buffers))
|
||||||
.get_mut(channel_index)?
|
.get_mut(channel_index)?
|
||||||
.get_unchecked_mut(self.current_sample),
|
.get_unchecked_mut(self.current_sample),
|
||||||
)
|
)
|
||||||
@@ -158,7 +158,7 @@ impl<'slice, 'sample> ChannelSamples<'slice, 'sample> {
|
|||||||
/// `channel_index` must be in the range `0..Self::len()`.
|
/// `channel_index` must be in the range `0..Self::len()`.
|
||||||
#[inline]
|
#[inline]
|
||||||
pub unsafe fn get_unchecked_mut(&mut self, channel_index: usize) -> &mut f32 {
|
pub unsafe fn get_unchecked_mut(&mut self, channel_index: usize) -> &mut f32 {
|
||||||
(*self.buffers)
|
(&mut (*self.buffers))
|
||||||
.get_unchecked_mut(channel_index)
|
.get_unchecked_mut(channel_index)
|
||||||
.get_unchecked_mut(self.current_sample)
|
.get_unchecked_mut(self.current_sample)
|
||||||
}
|
}
|
||||||
@@ -176,7 +176,7 @@ impl<'slice, 'sample> ChannelSamples<'slice, 'sample> {
|
|||||||
let mut values = [0.0; LANES];
|
let mut values = [0.0; LANES];
|
||||||
for (channel_idx, value) in values.iter_mut().enumerate().take(used_lanes) {
|
for (channel_idx, value) in values.iter_mut().enumerate().take(used_lanes) {
|
||||||
*value = unsafe {
|
*value = unsafe {
|
||||||
*(*self.buffers)
|
*(&(*self.buffers))
|
||||||
.get_unchecked(channel_idx)
|
.get_unchecked(channel_idx)
|
||||||
.get_unchecked(self.current_sample)
|
.get_unchecked(self.current_sample)
|
||||||
};
|
};
|
||||||
@@ -199,7 +199,7 @@ impl<'slice, 'sample> ChannelSamples<'slice, 'sample> {
|
|||||||
{
|
{
|
||||||
let mut values = [0.0; LANES];
|
let mut values = [0.0; LANES];
|
||||||
for (channel_idx, value) in values.iter_mut().enumerate() {
|
for (channel_idx, value) in values.iter_mut().enumerate() {
|
||||||
*value = *(*self.buffers)
|
*value = *(&(*self.buffers))
|
||||||
.get_unchecked(channel_idx)
|
.get_unchecked(channel_idx)
|
||||||
.get_unchecked(self.current_sample);
|
.get_unchecked(self.current_sample);
|
||||||
}
|
}
|
||||||
@@ -220,7 +220,7 @@ impl<'slice, 'sample> ChannelSamples<'slice, 'sample> {
|
|||||||
let values = vector.to_array();
|
let values = vector.to_array();
|
||||||
for (channel_idx, value) in values.into_iter().enumerate().take(used_lanes) {
|
for (channel_idx, value) in values.into_iter().enumerate().take(used_lanes) {
|
||||||
*unsafe {
|
*unsafe {
|
||||||
(*self.buffers)
|
(&mut (*self.buffers))
|
||||||
.get_unchecked_mut(channel_idx)
|
.get_unchecked_mut(channel_idx)
|
||||||
.get_unchecked_mut(self.current_sample)
|
.get_unchecked_mut(self.current_sample)
|
||||||
} = value;
|
} = value;
|
||||||
@@ -242,7 +242,7 @@ impl<'slice, 'sample> ChannelSamples<'slice, 'sample> {
|
|||||||
{
|
{
|
||||||
let values = vector.to_array();
|
let values = vector.to_array();
|
||||||
for (channel_idx, value) in values.into_iter().enumerate() {
|
for (channel_idx, value) in values.into_iter().enumerate() {
|
||||||
*(*self.buffers)
|
*(&mut (*self.buffers))
|
||||||
.get_unchecked_mut(channel_idx)
|
.get_unchecked_mut(channel_idx)
|
||||||
.get_unchecked_mut(self.current_sample) = value;
|
.get_unchecked_mut(self.current_sample) = value;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user