about summary refs log tree commit diff
path: root/src/libcore/mem
diff options
context:
space:
mode:
authorAlex Gaynor <alex.gaynor@gmail.com>2019-06-26 07:50:30 -0400
committerAlex Gaynor <alex.gaynor@gmail.com>2019-07-04 09:33:15 -0400
commite4f250e405046713ba6fbcf481d0a88f26d25ae8 (patch)
treeb16fc6e7817c8f9caeddff1ed84bd8887b17d61a /src/libcore/mem
parentb43eb4235ac43c822d903ad26ed806f34cc1a14a (diff)
Implement mem::{zeroed,uninitialized} in terms of MaybeUninit.
Refs #62061
Diffstat (limited to 'src/libcore/mem')
-rw-r--r--src/libcore/mem/mod.rs6
1 files changed, 2 insertions, 4 deletions
diff --git a/src/libcore/mem/mod.rs b/src/libcore/mem/mod.rs
index b31522db474..b62d81affdd 100644
--- a/src/libcore/mem/mod.rs
+++ b/src/libcore/mem/mod.rs
@@ -450,8 +450,7 @@ pub const fn needs_drop<T>() -> bool {
 #[inline]
 #[stable(feature = "rust1", since = "1.0.0")]
 pub unsafe fn zeroed<T>() -> T {
-    intrinsics::panic_if_uninhabited::<T>();
-    intrinsics::init()
+    MaybeUninit::zeroed().assume_init()
 }
 
 /// Bypasses Rust's normal memory-initialization checks by pretending to
@@ -476,8 +475,7 @@ pub unsafe fn zeroed<T>() -> T {
 #[rustc_deprecated(since = "1.38.0", reason = "use `mem::MaybeUninit` instead")]
 #[stable(feature = "rust1", since = "1.0.0")]
 pub unsafe fn uninitialized<T>() -> T {
-    intrinsics::panic_if_uninhabited::<T>();
-    intrinsics::uninit()
+    MaybeUninit::uninit().assume_init()
 }
 
 /// Swaps the values at two mutable locations, without deinitializing either one.