about summary refs log tree commit diff
path: root/src/liballoc_system
diff options
context:
space:
mode:
authorJeremy Soller <jackpot51@gmail.com>2016-12-20 18:09:19 -0700
committerJeremy Soller <jackpot51@gmail.com>2016-12-20 18:09:19 -0700
commit2ca1f0b3b30208695529e227cda6ba0ad8a5ec60 (patch)
treeb5aa0963c780cfb58efdaa02b4adf8c8ad53b249 /src/liballoc_system
parent7697c7277ea35e215c412b8d1216ca75bd1a6a45 (diff)
downloadrust-2ca1f0b3b30208695529e227cda6ba0ad8a5ec60.tar.gz
rust-2ca1f0b3b30208695529e227cda6ba0ad8a5ec60.zip
Switch back to alloc_system
Diffstat (limited to 'src/liballoc_system')
-rw-r--r--src/liballoc_system/lib.rs51
1 files changed, 4 insertions, 47 deletions
diff --git a/src/liballoc_system/lib.rs b/src/liballoc_system/lib.rs
index 487e8e8e6ec..4daa6cbb846 100644
--- a/src/liballoc_system/lib.rs
+++ b/src/liballoc_system/lib.rs
@@ -19,8 +19,7 @@
             issue = "27783")]
 #![feature(allocator)]
 #![feature(staged_api)]
-#![cfg_attr(target_os = "redox", feature(libc))]
-#![cfg_attr(unix, feature(libc))]
+#![cfg_attr(any(unix, target_os = "redox"), feature(libc))]
 
 // The minimum alignment guaranteed by the architecture. This value is used to
 // add fast paths for low alignment values. In practice, the alignment is a
@@ -72,49 +71,7 @@ pub extern "C" fn __rust_usable_size(size: usize, align: usize) -> usize {
     imp::usable_size(size, align)
 }
 
-#[cfg(target_os = "redox")]
-mod imp {
-    extern crate libc;
-
-    use core::cmp;
-    use core::ptr;
-    use MIN_ALIGN;
-
-    pub unsafe fn allocate(size: usize, _align: usize) -> *mut u8 {
-        libc::malloc(size as libc::size_t) as *mut u8
-    }
-
-    pub unsafe fn reallocate(ptr: *mut u8, old_size: usize, size: usize, align: usize) -> *mut u8 {
-        if align <= MIN_ALIGN {
-            libc::realloc(ptr as *mut libc::c_void, size as libc::size_t) as *mut u8
-        } else {
-            let new_ptr = allocate(size, align);
-            if !new_ptr.is_null() {
-                ptr::copy(ptr, new_ptr, cmp::min(size, old_size));
-                deallocate(ptr, old_size, align);
-            }
-            new_ptr
-        }
-    }
-
-    pub unsafe fn reallocate_inplace(_ptr: *mut u8,
-                                     old_size: usize,
-                                     _size: usize,
-                                     _align: usize)
-                                     -> usize {
-        old_size
-    }
-
-    pub unsafe fn deallocate(ptr: *mut u8, _old_size: usize, _align: usize) {
-        libc::free(ptr as *mut libc::c_void)
-    }
-
-    pub fn usable_size(size: usize, _align: usize) -> usize {
-        size
-    }
-}
-
-#[cfg(any(unix))]
+#[cfg(any(unix, target_os = "redox"))]
 mod imp {
     extern crate libc;
 
@@ -130,7 +87,7 @@ mod imp {
         }
     }
 
-    #[cfg(target_os = "android")]
+    #[cfg(any(target_os = "android", target_os = "redox"))]
     unsafe fn aligned_malloc(size: usize, align: usize) -> *mut u8 {
         // On android we currently target API level 9 which unfortunately
         // doesn't have the `posix_memalign` API used below. Instead we use
@@ -152,7 +109,7 @@ mod imp {
         libc::memalign(align as libc::size_t, size as libc::size_t) as *mut u8
     }
 
-    #[cfg(not(target_os = "android"))]
+    #[cfg(not(any(target_os = "android", target_os = "redox")))]
     unsafe fn aligned_malloc(size: usize, align: usize) -> *mut u8 {
         let mut out = ptr::null_mut();
         let ret = libc::posix_memalign(&mut out, align as libc::size_t, size as libc::size_t);