]> git.lizzy.rs Git - rust.git/commitdiff
Mark `boxed::into_raw` as safe
authorMichael Layzell <michael@thelayzells.com>
Mon, 25 May 2015 01:45:29 +0000 (21:45 -0400)
committerMichael Layzell <michael@thelayzells.com>
Mon, 25 May 2015 01:45:29 +0000 (21:45 -0400)
By the same logic that `mem::forget` is safe, `boxed::into_raw` is actually a safe function. Fixes #25755.

src/liballoc/boxed.rs

index 35732dacd44f9aee58808895ae0a47daa42ce199..6633e48a814f6d8929865687dbb31596f73d8f8c 100644 (file)
@@ -139,24 +139,20 @@ pub unsafe fn from_raw(raw: *mut T) -> Self {
 /// convert pointer back to `Box` with `Box::from_raw` function, because
 /// `Box` does not specify, how memory is allocated.
 ///
-/// Function is unsafe, because result of this function is no longer
-/// automatically managed that may lead to memory or other resource
-/// leak.
-///
 /// # Examples
 /// ```
 /// # #![feature(alloc)]
 /// use std::boxed;
 ///
 /// let seventeen = Box::new(17u32);
-/// let raw = unsafe { boxed::into_raw(seventeen) };
+/// let raw = boxed::into_raw(seventeen);
 /// let boxed_again = unsafe { Box::from_raw(raw) };
 /// ```
 #[unstable(feature = "alloc",
            reason = "may be renamed")]
 #[inline]
-pub unsafe fn into_raw<T : ?Sized>(b: Box<T>) -> *mut T {
-    mem::transmute(b)
+pub fn into_raw<T : ?Sized>(b: Box<T>) -> *mut T {
+    unsafe { mem::transmute(b) }
 }
 
 #[stable(feature = "rust1", since = "1.0.0")]