Skip to content

Commit

Permalink
using slice directly, no intermediate vec
Browse files Browse the repository at this point in the history
  • Loading branch information
Ellen Arteca committed Aug 12, 2022
1 parent a72a057 commit 04f29dc
Showing 1 changed file with 2 additions and 4 deletions.
6 changes: 2 additions & 4 deletions compiler/rustc_middle/src/mir/interpret/allocation.rs
Original file line number Diff line number Diff line change
Expand Up @@ -214,8 +214,7 @@ impl<Prov> Allocation<Prov> {
let layout = std::alloc::Layout::from_size_align(slice.len(), align_usize).unwrap();
let bytes = unsafe {
let buf = std::alloc::alloc(layout);
let mut uninit_bytes = Vec::from_raw_parts(buf as *mut MaybeUninit<u8>, slice.len(), slice.len());
let mut boxed = Box::<[MaybeUninit<u8>]>::from_raw(&mut *uninit_bytes);
let mut boxed = Box::<[MaybeUninit<u8>]>::from_raw(std::slice::from_raw_parts_mut(buf as *mut MaybeUninit<u8>, slice.len()));
MaybeUninit::write_slice(&mut boxed, &slice);
boxed.assume_init()
};
Expand Down Expand Up @@ -290,8 +289,7 @@ impl Allocation {
let layout = std::alloc::Layout::from_size_align(self.bytes.len(), align_usize).unwrap();
let mut bytes = unsafe {
let buf = std::alloc::alloc(layout);
let mut uninit_bytes = Vec::from_raw_parts(buf as *mut MaybeUninit<u8>, self.bytes.len(), self.bytes.len());
let mut boxed = Box::<[MaybeUninit<u8>]>::from_raw(&mut *uninit_bytes);
let mut boxed = Box::<[MaybeUninit<u8>]>::from_raw(std::slice::from_raw_parts_mut(buf as *mut MaybeUninit<u8>, self.bytes.len()));
MaybeUninit::write_slice(&mut boxed, &self.bytes);
boxed.assume_init()
};
Expand Down

0 comments on commit 04f29dc

Please sign in to comment.