diff --git a/src/libstd/path.rs b/src/libstd/path.rs index 9003b368ebe..294743ed2cc 100644 --- a/src/libstd/path.rs +++ b/src/libstd/path.rs @@ -1341,7 +1341,8 @@ impl PathBuf { #[stable(feature = "box_from_path", since = "1.17.0")] impl<'a> From<&'a Path> for Box { fn from(path: &'a Path) -> Box { - let rw = Box::into_raw(Box::from(&path.inner)) as *mut Path; + let boxed: Box = path.inner.into(); + let rw = Box::into_raw(boxed) as *mut Path; unsafe { Box::from_raw(rw) } } } @@ -2313,7 +2314,8 @@ impl Path { #[stable(feature = "into_boxed_path", since = "1.20.0")] pub fn into_path_buf(self: Box) -> PathBuf { let rw = Box::into_raw(self) as *mut OsStr; - unsafe { Box::from_raw(rw) } + let inner = unsafe { Box::from_raw(rw) }; + PathBuf { inner: OsString::from(inner) } } }