about summary refs log tree commit diff
path: root/src/librustc_codegen_llvm/llvm/archive_ro.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/librustc_codegen_llvm/llvm/archive_ro.rs')
-rw-r--r--src/librustc_codegen_llvm/llvm/archive_ro.rs16
1 files changed, 2 insertions, 14 deletions
diff --git a/src/librustc_codegen_llvm/llvm/archive_ro.rs b/src/librustc_codegen_llvm/llvm/archive_ro.rs
index 2a77f256e3a..d5c73fecf81 100644
--- a/src/librustc_codegen_llvm/llvm/archive_ro.rs
+++ b/src/librustc_codegen_llvm/llvm/archive_ro.rs
@@ -10,10 +10,10 @@
 
 //! A wrapper around LLVM's archive (.a) code
 
-use std::ffi::CString;
 use std::path::Path;
 use std::slice;
 use std::str;
+use rustc_fs_util::path_to_c_string;
 
 pub struct ArchiveRO {
     pub raw: &'static mut super::Archive,
@@ -38,24 +38,12 @@ impl ArchiveRO {
     /// raised.
     pub fn open(dst: &Path) -> Result<ArchiveRO, String> {
         return unsafe {
-            let s = path2cstr(dst);
+            let s = path_to_c_string(dst);
             let ar = super::LLVMRustOpenArchive(s.as_ptr()).ok_or_else(|| {
                 super::last_error().unwrap_or_else(|| "failed to open archive".to_owned())
             })?;
             Ok(ArchiveRO { raw: ar })
         };
-
-        #[cfg(unix)]
-        fn path2cstr(p: &Path) -> CString {
-            use std::os::unix::prelude::*;
-            use std::ffi::OsStr;
-            let p: &OsStr = p.as_ref();
-            CString::new(p.as_bytes()).unwrap()
-        }
-        #[cfg(windows)]
-        fn path2cstr(p: &Path) -> CString {
-            CString::new(p.to_str().unwrap()).unwrap()
-        }
     }
 
     pub fn iter(&self) -> Iter {