use mem::MaybeUninit instead of mem::uninitialized

This commit is contained in:
nanpuyue
2019-08-16 15:49:37 +02:00
committed by Douman
parent b1c17169d9
commit 79e4b2847f
+3 -3
View File
@@ -1666,7 +1666,7 @@ impl<'a> From<&'a [u8]> for BytesMut {
BytesMut::new()
} else if len <= INLINE_CAP {
unsafe {
let mut inner: Inner = mem::uninitialized();
let mut inner: Inner = mem::MaybeUninit::uninit().assume_init();
// Set inline mask
inner.arc = AtomicPtr::new(KIND_INLINE as *mut Shared);
@@ -1858,7 +1858,7 @@ impl Inner {
if capacity <= INLINE_CAP {
unsafe {
// Using uninitialized memory is ~30% faster
let mut inner: Inner = mem::uninitialized();
let mut inner: Inner = mem::MaybeUninit::uninit().assume_init();
inner.arc = AtomicPtr::new(KIND_INLINE as *mut Shared);
inner
}
@@ -2176,7 +2176,7 @@ impl Inner {
if self.is_inline_or_static() {
// In this case, a shallow_clone still involves copying the data.
let mut inner: Inner = mem::uninitialized();
let mut inner: Inner = mem::MaybeUninit::uninit().assume_init();
ptr::copy_nonoverlapping(
self,
&mut inner,