]> git.lizzy.rs Git - rust.git/commitdiff
use MaybeUninit in core::ptr::swap_nonoverlapping_bytes
authorRalf Jung <post@ralfj.de>
Wed, 10 Oct 2018 10:04:07 +0000 (12:04 +0200)
committerRalf Jung <post@ralfj.de>
Fri, 23 Nov 2018 21:50:20 +0000 (22:50 +0100)
Code by @japaric, I just split it into individual commits

src/libcore/ptr.rs

index 5032c112f7cc09c1014a89e0887cc737cb461322..947b67e4e9af318eec28d439c05a9a87d871e795 100644 (file)
@@ -389,8 +389,8 @@ unsafe fn swap_nonoverlapping_bytes(x: *mut u8, y: *mut u8, len: usize) {
     while i + block_size <= len {
         // Create some uninitialized memory as scratch space
         // Declaring `t` here avoids aligning the stack when this loop is unused
-        let mut t: Block = mem::uninitialized();
-        let t = &mut t as *mut _ as *mut u8;
+        let mut t = mem::MaybeUninit::<Block>::uninitialized();
+        let t = t.as_mut_ptr() as *mut u8;
         let x = x.add(i);
         let y = y.add(i);
 
@@ -404,10 +404,10 @@ unsafe fn swap_nonoverlapping_bytes(x: *mut u8, y: *mut u8, len: usize) {
 
     if i < len {
         // Swap any remaining bytes
-        let mut t: UnalignedBlock = mem::uninitialized();
+        let mut t = mem::MaybeUninit::<UnalignedBlock>::uninitialized();
         let rem = len - i;
 
-        let t = &mut t as *mut _ as *mut u8;
+        let t = t.as_mut_ptr() as *mut u8;
         let x = x.add(i);
         let y = y.add(i);