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:
Robbert van der Helm
2025-06-15 21:20:04 +02:00
parent 7da01b5f21
commit ecfd6322c7
2 changed files with 22 additions and 22 deletions

View File

@@ -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;
} }

View File

@@ -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;
} }