Skip to content

Commit a17bcb9

Browse files
committed
Fix inappropriate use of slice::as_mut_ptr
1 parent 98077fe commit a17bcb9

File tree

1 file changed

+4
-6
lines changed

1 file changed

+4
-6
lines changed

src/vec.rs

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -226,8 +226,8 @@ impl<'data, T: 'data + Send> Producer for DrainProducer<'data, T> {
226226
impl<'data, T: 'data + Send> Drop for DrainProducer<'data, T> {
227227
fn drop(&mut self) {
228228
// extract the slice so we can use `Drop for [T]`
229-
let slice_ptr = mem::take(&mut self.slice).as_mut_ptr();
230-
unsafe { ptr::drop_in_place(slice_ptr) };
229+
let slice_ptr: *mut [T] = mem::take::<&'data mut [T]>(&mut self.slice);
230+
unsafe { ptr::drop_in_place::<[T]>(slice_ptr) };
231231
}
232232
}
233233

@@ -277,9 +277,7 @@ impl<'data, T: 'data> iter::FusedIterator for SliceDrain<'data, T> {}
277277
impl<'data, T: 'data> Drop for SliceDrain<'data, T> {
278278
fn drop(&mut self) {
279279
// extract the iterator so we can use `Drop for [T]`
280-
let slice_ptr = mem::replace(&mut self.iter, [].iter_mut())
281-
.into_slice()
282-
.as_mut_ptr();
283-
unsafe { ptr::drop_in_place(slice_ptr) };
280+
let slice_ptr: *mut [T] = mem::replace(&mut self.iter, [].iter_mut()).into_slice();
281+
unsafe { ptr::drop_in_place::<[T]>(slice_ptr) };
284282
}
285283
}

0 commit comments

Comments
 (0)