From ecfd6322c776d9f0373d31758976c2353c162737 Mon Sep 17 00:00:00 2001 From: Robbert van der Helm Date: Sun, 15 Jun 2025 21:20:04 +0200 Subject: [PATCH] Make implicit autorefs explicit in buffer code This was triggering a new deny-by-default lint in recent nightly versions. --- src/buffer/blocks.rs | 24 ++++++++++++------------ src/buffer/samples.rs | 20 ++++++++++---------- 2 files changed, 22 insertions(+), 22 deletions(-) diff --git a/src/buffer/blocks.rs b/src/buffer/blocks.rs index 897709aa..ccf8f9ec 100644 --- a/src/buffer/blocks.rs +++ b/src/buffer/blocks.rs @@ -95,12 +95,12 @@ impl<'slice, 'sample> Iterator for BlockChannelsIter<'slice, 'sample> { #[inline] fn next(&mut self) -> Option { - if self.current_channel < unsafe { (*self.buffers).len() } { + if self.current_channel < unsafe { (&(*self.buffers)).len() } { // SAFETY: These bounds have already been checked // SAFETY: It is also not possible to have multiple mutable references to the same // sample at the same time let slice = unsafe { - (*self.buffers) + (&mut (*self.buffers)) .get_unchecked_mut(self.current_channel) .get_unchecked_mut(self.current_block_start..self.current_block_end) }; @@ -115,7 +115,7 @@ impl<'slice, 'sample> Iterator for BlockChannelsIter<'slice, 'sample> { #[inline] fn size_hint(&self) -> (usize, Option) { - let remaining = unsafe { (*self.buffers).len() } - self.current_channel; + let remaining = unsafe { (&(*self.buffers)).len() } - self.current_channel; (remaining, Some(remaining)) } @@ -134,7 +134,7 @@ impl<'slice, 'sample> Block<'slice, 'sample> { /// Returns the number of channels in this buffer. #[inline] 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 @@ -171,7 +171,7 @@ impl<'slice, 'sample> Block<'slice, 'sample> { // SAFETY: The block bound has already been checked unsafe { Some( - (*self.buffers) + (&(*self.buffers)) .get(channel_index)? .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()`. #[inline] pub unsafe fn get_unchecked(&self, channel_index: usize) -> &[f32] { - (*self.buffers) + (&(*self.buffers)) .get_unchecked(channel_index) .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 unsafe { Some( - (*self.buffers) + (&mut (*self.buffers)) .get_mut(channel_index)? .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()`. #[inline] 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(self.current_block_start..self.current_block_end) } @@ -238,7 +238,7 @@ impl<'slice, 'sample> Block<'slice, 'sample> { let mut values = [0.0; LANES]; for (channel_idx, value) in values.iter_mut().enumerate().take(used_lanes) { *value = unsafe { - *(*self.buffers) + *(&(*self.buffers)) .get_unchecked(channel_idx) .get_unchecked(self.current_block_start + sample_index) }; @@ -264,7 +264,7 @@ impl<'slice, 'sample> Block<'slice, 'sample> { { let mut values = [0.0; LANES]; for (channel_idx, value) in values.iter_mut().enumerate() { - *value = *(*self.buffers) + *value = *(&(*self.buffers)) .get_unchecked(channel_idx) .get_unchecked(self.current_block_start + sample_index); } @@ -296,7 +296,7 @@ impl<'slice, 'sample> Block<'slice, 'sample> { let values = vector.to_array(); for (channel_idx, value) in values.into_iter().enumerate().take(used_lanes) { *unsafe { - (*self.buffers) + (&mut (*self.buffers)) .get_unchecked_mut(channel_idx) .get_unchecked_mut(self.current_block_start + sample_index) } = value; @@ -324,7 +324,7 @@ impl<'slice, 'sample> Block<'slice, 'sample> { { let values = vector.to_array(); for (channel_idx, value) in values.into_iter().enumerate() { - *(*self.buffers) + *(&mut (*self.buffers)) .get_unchecked_mut(channel_idx) .get_unchecked_mut(self.current_block_start + sample_index) = value; } diff --git a/src/buffer/samples.rs b/src/buffer/samples.rs index f20cc627..fae69f42 100644 --- a/src/buffer/samples.rs +++ b/src/buffer/samples.rs @@ -87,12 +87,12 @@ impl<'slice, 'sample> Iterator for ChannelSamplesIter<'slice, 'sample> { #[inline] fn next(&mut self) -> Option { - if self.current_channel < unsafe { (*self.buffers).len() } { + if self.current_channel < unsafe { (&(*self.buffers)).len() } { // SAFETY: These bounds have already been checked // SAFETY: It is also not possible to have multiple mutable references to the same // sample at the same time let sample = unsafe { - (*self.buffers) + (&mut (*self.buffers)) .get_unchecked_mut(self.current_channel) .get_unchecked_mut(self.current_sample) }; @@ -107,7 +107,7 @@ impl<'slice, 'sample> Iterator for ChannelSamplesIter<'slice, 'sample> { #[inline] fn size_hint(&self) -> (usize, Option) { - let remaining = unsafe { (*self.buffers).len() } - self.current_channel; + let remaining = unsafe { (&(*self.buffers)).len() } - self.current_channel; (remaining, Some(remaining)) } @@ -121,7 +121,7 @@ impl<'slice, 'sample> ChannelSamples<'slice, 'sample> { #[allow(clippy::len_without_is_empty)] #[inline] 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 @@ -144,7 +144,7 @@ impl<'slice, 'sample> ChannelSamples<'slice, 'sample> { // SAFETY: The sample bound has already been checked unsafe { Some( - (*self.buffers) + (&mut (*self.buffers)) .get_mut(channel_index)? .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()`. #[inline] 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(self.current_sample) } @@ -176,7 +176,7 @@ impl<'slice, 'sample> ChannelSamples<'slice, 'sample> { let mut values = [0.0; LANES]; for (channel_idx, value) in values.iter_mut().enumerate().take(used_lanes) { *value = unsafe { - *(*self.buffers) + *(&(*self.buffers)) .get_unchecked(channel_idx) .get_unchecked(self.current_sample) }; @@ -199,7 +199,7 @@ impl<'slice, 'sample> ChannelSamples<'slice, 'sample> { { let mut values = [0.0; LANES]; for (channel_idx, value) in values.iter_mut().enumerate() { - *value = *(*self.buffers) + *value = *(&(*self.buffers)) .get_unchecked(channel_idx) .get_unchecked(self.current_sample); } @@ -220,7 +220,7 @@ impl<'slice, 'sample> ChannelSamples<'slice, 'sample> { let values = vector.to_array(); for (channel_idx, value) in values.into_iter().enumerate().take(used_lanes) { *unsafe { - (*self.buffers) + (&mut (*self.buffers)) .get_unchecked_mut(channel_idx) .get_unchecked_mut(self.current_sample) } = value; @@ -242,7 +242,7 @@ impl<'slice, 'sample> ChannelSamples<'slice, 'sample> { { let values = vector.to_array(); for (channel_idx, value) in values.into_iter().enumerate() { - *(*self.buffers) + *(&mut (*self.buffers)) .get_unchecked_mut(channel_idx) .get_unchecked_mut(self.current_sample) = value; }