From 53b7a06fafd00627d721d168bc993152a0f265c8 Mon Sep 17 00:00:00 2001 From: Tobias Bucher Date: Wed, 15 Apr 2015 09:52:08 +0200 Subject: [PATCH] Remove one allocation for the file path in file opening Fixes #22190. --- src/libstd/fs.rs | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/src/libstd/fs.rs b/src/libstd/fs.rs index 914830d9dcfea..a92ef2a2aef7d 100644 --- a/src/libstd/fs.rs +++ b/src/libstd/fs.rs @@ -51,7 +51,6 @@ use vec::Vec; #[stable(feature = "rust1", since = "1.0.0")] pub struct File { inner: fs_imp::File, - path: Option, } /// Metadata information about a file. @@ -193,12 +192,12 @@ impl File { OpenOptions::new().write(true).create(true).truncate(true).open(path) } - /// Returns the original path that was used to open this file. + /// Returns `None`. #[unstable(feature = "file_path", - reason = "this abstraction is imposed by this library instead \ - of the underlying OS and may be removed")] + reason = "this abstraction was imposed by this library and was removed")] + #[deprecated(since = "1.0.0", reason = "abstraction was removed")] pub fn path(&self) -> Option<&Path> { - self.path.as_ref().map(|p| &**p) + None } /// Attempt to sync all OS-internal metadata to disk. @@ -302,7 +301,7 @@ impl AsInner for File { } impl FromInner for File { fn from_inner(f: fs_imp::File) -> File { - File { inner: f, path: None } + File { inner: f } } } @@ -470,7 +469,7 @@ impl OpenOptions { pub fn open>(&self, path: P) -> io::Result { let path = path.as_ref(); let inner = try!(fs_imp::File::open(path, &self.0)); - Ok(File { path: Some(path.to_path_buf()), inner: inner }) + Ok(File { inner: inner }) } }