From a452597528b57dedcae8a1df13ae9c53a56e5330 Mon Sep 17 00:00:00 2001 From: Jeff Vander Stoep Date: Mon, 3 Apr 2023 18:08:32 +0200 Subject: Upgrade rayon to 1.7.0 This project was upgraded with external_updater. Usage: tools/external_updater/updater.sh update rust/crates/rayon For more info, check https://cs.android.com/android/platform/superproject/+/master:tools/external_updater/README.md Test: TreeHugger Change-Id: Id3b0ce117290de8306402351d88eff7a9619d47f --- src/vec.rs | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) (limited to 'src/vec.rs') diff --git a/src/vec.rs b/src/vec.rs index c804b0f..7892f53 100644 --- a/src/vec.rs +++ b/src/vec.rs @@ -225,8 +225,9 @@ impl<'data, T: 'data + Send> Producer for DrainProducer<'data, T> { impl<'data, T: 'data + Send> Drop for DrainProducer<'data, T> { fn drop(&mut self) { - // use `Drop for [T]` - unsafe { ptr::drop_in_place(self.slice) }; + // extract the slice so we can use `Drop for [T]` + let slice_ptr: *mut [T] = mem::take::<&'data mut [T]>(&mut self.slice); + unsafe { ptr::drop_in_place::<[T]>(slice_ptr) }; } } @@ -276,7 +277,7 @@ impl<'data, T: 'data> iter::FusedIterator for SliceDrain<'data, T> {} impl<'data, T: 'data> Drop for SliceDrain<'data, T> { fn drop(&mut self) { // extract the iterator so we can use `Drop for [T]` - let iter = mem::replace(&mut self.iter, [].iter_mut()); - unsafe { ptr::drop_in_place(iter.into_slice()) }; + let slice_ptr: *mut [T] = mem::replace(&mut self.iter, [].iter_mut()).into_slice(); + unsafe { ptr::drop_in_place::<[T]>(slice_ptr) }; } } -- cgit v1.2.3