summary refs log tree commit diff
path: root/src/libstd/path.rs
diff options
context:
space:
mode:
authorErick Tryzelaar <erick.tryzelaar@gmail.com>2013-07-22 21:41:46 -0700
committerErick Tryzelaar <erick.tryzelaar@gmail.com>2013-07-23 16:56:22 -0700
commit7af56bb92199eabcfee52c43739761b18872a2c1 (patch)
tree5a50c048e33bf6f655ac393facdb338d9650a619 /src/libstd/path.rs
parent9fdec67a6761ae43d8fae80e10b5a7a1e0ca7c0d (diff)
downloadrust-7af56bb92199eabcfee52c43739761b18872a2c1.tar.gz
rust-7af56bb92199eabcfee52c43739761b18872a2c1.zip
std: move StrUtil::as_c_str into StrSlice
Diffstat (limited to 'src/libstd/path.rs')
-rw-r--r--src/libstd/path.rs37
1 files changed, 15 insertions, 22 deletions
diff --git a/src/libstd/path.rs b/src/libstd/path.rs
index 3ec3407b1cc..ef7a055b0e7 100644
--- a/src/libstd/path.rs
+++ b/src/libstd/path.rs
@@ -23,7 +23,6 @@ use iterator::IteratorUtil;
 use libc;
 use option::{None, Option, Some};
 use str::{OwnedStr, Str, StrSlice, StrVector};
-use str;
 use to_str::ToStr;
 use ascii::{AsciiCast, AsciiStr};
 use vec::{OwnedVector, ImmutableVector};
@@ -342,13 +341,11 @@ mod stat {
 #[cfg(target_os = "win32")]
 impl WindowsPath {
     pub fn stat(&self) -> Option<libc::stat> {
-        unsafe {
-             do str::as_c_str(self.to_str()) |buf| {
-                let mut st = stat::arch::default_stat();
-                match libc::stat(buf, &mut st) {
-                    0 => Some(st),
-                    _ => None,
-                }
+        do self.to_str().as_c_str |buf| {
+            let mut st = stat::arch::default_stat();
+            match unsafe { libc::stat(buf, &mut st) } {
+                0 => Some(st),
+                _ => None,
             }
         }
     }
@@ -378,13 +375,11 @@ impl WindowsPath {
 #[cfg(not(target_os = "win32"))]
 impl PosixPath {
     pub fn stat(&self) -> Option<libc::stat> {
-        unsafe {
-             do str::as_c_str(self.to_str()) |buf| {
-                let mut st = stat::arch::default_stat();
-                match libc::stat(buf, &mut st) {
-                    0 => Some(st),
-                    _ => None,
-                }
+        do self.to_str().as_c_str |buf| {
+            let mut st = stat::arch::default_stat();
+            match unsafe { libc::stat(buf as *libc::c_char, &mut st) } {
+                0 => Some(st),
+                _ => None,
             }
         }
     }
@@ -458,13 +453,11 @@ impl PosixPath {
 #[cfg(unix)]
 impl PosixPath {
     pub fn lstat(&self) -> Option<libc::stat> {
-        unsafe {
-            do str::as_c_str(self.to_str()) |buf| {
-                let mut st = stat::arch::default_stat();
-                match libc::lstat(buf, &mut st) {
-                    0 => Some(st),
-                    _ => None,
-                }
+        do self.to_str().as_c_str |buf| {
+            let mut st = stat::arch::default_stat();
+            match unsafe { libc::lstat(buf, &mut st) } {
+                0 => Some(st),
+                _ => None,
             }
         }
     }