From 301594917fca62ffa1ca4589ac398c3196427547 Mon Sep 17 00:00:00 2001 From: Huon Wilson <dbau.pp+github@gmail.com> Date: Wed, 9 Apr 2014 11:45:20 +1000 Subject: [PATCH] std,native,green,rustuv: make readdir return `Vec`. Replacing `~[]`. This also makes the `walk_dir` iterator use a `Vec` internally. --- src/libnative/io/file_unix.rs | 7 +++---- src/libnative/io/file_win32.rs | 6 +++--- src/libnative/io/mod.rs | 2 +- src/librustuv/file.rs | 4 ++-- src/librustuv/uvio.rs | 2 +- src/libstd/io/fs.rs | 4 ++-- src/libstd/rt/rtio.rs | 3 ++- 7 files changed, 14 insertions(+), 14 deletions(-) diff --git a/src/libnative/io/file_unix.rs b/src/libnative/io/file_unix.rs index 56460166b48..5446ab2950e 100644 --- a/src/libnative/io/file_unix.rs +++ b/src/libnative/io/file_unix.rs @@ -340,11 +340,11 @@ pub fn mkdir(p: &CString, mode: io::FilePermission) -> IoResult<()> { })) } -pub fn readdir(p: &CString) -> IoResult<~[Path]> { +pub fn readdir(p: &CString) -> IoResult<Vec<Path>> { use libc::{dirent_t}; use libc::{opendir, readdir_r, closedir}; - fn prune(root: &CString, dirs: ~[Path]) -> ~[Path] { + fn prune(root: &CString, dirs: Vec<Path>) -> Vec<Path> { let root = unsafe { CString::new(root.with_ref(|p| p), false) }; let root = Path::new(root); @@ -365,7 +365,7 @@ pub fn readdir(p: &CString) -> IoResult<~[Path]> { let dir_ptr = p.with_ref(|buf| unsafe { opendir(buf) }); if dir_ptr as uint != 0 { - let mut paths = ~[]; + let mut paths = vec!(); let mut entry_ptr = 0 as *mut dirent_t; while unsafe { readdir_r(dir_ptr, ptr, &mut entry_ptr) == 0 } { if entry_ptr.is_null() { break } @@ -571,4 +571,3 @@ mod tests { } } } - diff --git a/src/libnative/io/file_win32.rs b/src/libnative/io/file_win32.rs index 3e8ee55df94..8090042f090 100644 --- a/src/libnative/io/file_win32.rs +++ b/src/libnative/io/file_win32.rs @@ -323,10 +323,10 @@ pub fn mkdir(p: &CString, _mode: io::FilePermission) -> IoResult<()> { }) } -pub fn readdir(p: &CString) -> IoResult<~[Path]> { +pub fn readdir(p: &CString) -> IoResult<Vec<Path>> { use rt::global_heap::malloc_raw; - fn prune(root: &CString, dirs: ~[Path]) -> ~[Path] { + fn prune(root: &CString, dirs: Vec<Path>) -> Vec<Path> { let root = unsafe { CString::new(root.with_ref(|p| p), false) }; let root = Path::new(root); @@ -346,7 +346,7 @@ pub fn readdir(p: &CString) -> IoResult<~[Path]> { let wfd_ptr = malloc_raw(rust_list_dir_wfd_size() as uint); let find_handle = libc::FindFirstFileW(path_ptr, wfd_ptr as libc::HANDLE); if find_handle as libc::c_int != libc::INVALID_HANDLE_VALUE { - let mut paths = ~[]; + let mut paths = vec!(); let mut more_files = 1 as libc::c_int; while more_files != 0 { let fp_buf = rust_list_dir_wfd_fp_buf(wfd_ptr as *c_void); diff --git a/src/libnative/io/mod.rs b/src/libnative/io/mod.rs index ffca0dbe3dc..cc432555abb 100644 --- a/src/libnative/io/mod.rs +++ b/src/libnative/io/mod.rs @@ -217,7 +217,7 @@ impl rtio::IoFactory for IoFactory { fn fs_rename(&mut self, path: &CString, to: &CString) -> IoResult<()> { file::rename(path, to) } - fn fs_readdir(&mut self, path: &CString, _flags: c_int) -> IoResult<~[Path]> { + fn fs_readdir(&mut self, path: &CString, _flags: c_int) -> IoResult<Vec<Path>> { file::readdir(path) } fn fs_lstat(&mut self, path: &CString) -> IoResult<io::FileStat> { diff --git a/src/librustuv/file.rs b/src/librustuv/file.rs index acb7a8184dd..69be32a6021 100644 --- a/src/librustuv/file.rs +++ b/src/librustuv/file.rs @@ -152,13 +152,13 @@ impl FsRequest { } pub fn readdir(loop_: &Loop, path: &CString, flags: c_int) - -> Result<~[Path], UvError> + -> Result<Vec<Path>, UvError> { execute(|req, cb| unsafe { uvll::uv_fs_readdir(loop_.handle, req, path.with_ref(|p| p), flags, cb) }).map(|req| unsafe { - let mut paths = ~[]; + let mut paths = vec!(); let path = CString::new(path.with_ref(|p| p), false); let parent = Path::new(path); let _ = c_str::from_c_multistring(req.get_ptr() as *libc::c_char, diff --git a/src/librustuv/uvio.rs b/src/librustuv/uvio.rs index 424849bbf0e..55456bb548e 100644 --- a/src/librustuv/uvio.rs +++ b/src/librustuv/uvio.rs @@ -234,7 +234,7 @@ impl IoFactory for UvIoFactory { r.map_err(uv_error_to_io_error) } fn fs_readdir(&mut self, path: &CString, flags: c_int) - -> Result<~[Path], IoError> + -> Result<Vec<Path>, IoError> { let r = FsRequest::readdir(&self.loop_, path, flags); r.map_err(uv_error_to_io_error) diff --git a/src/libstd/io/fs.rs b/src/libstd/io/fs.rs index 2fea002d419..b8a58c5cf10 100644 --- a/src/libstd/io/fs.rs +++ b/src/libstd/io/fs.rs @@ -483,7 +483,7 @@ pub fn rmdir(path: &Path) -> IoResult<()> { /// Will return an error if the provided `from` doesn't exist, the process lacks /// permissions to view the contents or if the `path` points at a non-directory /// file -pub fn readdir(path: &Path) -> IoResult<~[Path]> { +pub fn readdir(path: &Path) -> IoResult<Vec<Path>> { LocalIo::maybe_raise(|io| { io.fs_readdir(&path.to_c_str(), 0) }) @@ -498,7 +498,7 @@ pub fn walk_dir(path: &Path) -> IoResult<Directories> { /// An iterator which walks over a directory pub struct Directories { - stack: ~[Path], + stack: Vec<Path>, } impl Iterator<Path> for Directories { diff --git a/src/libstd/rt/rtio.rs b/src/libstd/rt/rtio.rs index 1750e685627..cc8356d2b9a 100644 --- a/src/libstd/rt/rtio.rs +++ b/src/libstd/rt/rtio.rs @@ -20,6 +20,7 @@ use path::Path; use result::Err; use rt::local::Local; use rt::task::Task; +use vec::Vec; use ai = io::net::addrinfo; use io; @@ -168,7 +169,7 @@ pub trait IoFactory { fn fs_rmdir(&mut self, path: &CString) -> IoResult<()>; fn fs_rename(&mut self, path: &CString, to: &CString) -> IoResult<()>; fn fs_readdir(&mut self, path: &CString, flags: c_int) -> - IoResult<~[Path]>; + IoResult<Vec<Path>>; fn fs_lstat(&mut self, path: &CString) -> IoResult<FileStat>; fn fs_chown(&mut self, path: &CString, uid: int, gid: int) -> IoResult<()>;