diff options
| author | bors <bors@rust-lang.org> | 2016-01-12 22:49:02 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2016-01-12 22:49:02 +0000 |
| commit | 49c38277905f515537ce4d9610df87680ae76524 (patch) | |
| tree | 5bc9133d749213b89ffaaa07ac2cc550e8cdb8b9 /src/liballoc_system | |
| parent | cf8b1ce250348c4b28dc922d49b0b2465329192e (diff) | |
| parent | 5657eefcd8f976e2558d8eae47e73ddb2119ccba (diff) | |
| download | rust-49c38277905f515537ce4d9610df87680ae76524.tar.gz rust-49c38277905f515537ce4d9610df87680ae76524.zip | |
Auto merge of #30601 - tamird:delegate-libc, r=alexcrichton
See: http://developer.android.com/ndk/downloads/revision_history.html Also, use `libc`'s `posix_memalign`.
Diffstat (limited to 'src/liballoc_system')
| -rw-r--r-- | src/liballoc_system/lib.rs | 32 |
1 files changed, 6 insertions, 26 deletions
diff --git a/src/liballoc_system/lib.rs b/src/liballoc_system/lib.rs index fccc024603e..a4e98e413bb 100644 --- a/src/liballoc_system/lib.rs +++ b/src/liballoc_system/lib.rs @@ -75,37 +75,17 @@ mod imp { use libc; use MIN_ALIGN; - extern "C" { - // Apparently android doesn't have posix_memalign - #[cfg(target_os = "android")] - fn memalign(align: libc::size_t, size: libc::size_t) -> *mut libc::c_void; - - #[cfg(not(target_os = "android"))] - fn posix_memalign(memptr: *mut *mut libc::c_void, - align: libc::size_t, - size: libc::size_t) - -> libc::c_int; - } - pub unsafe fn allocate(size: usize, align: usize) -> *mut u8 { if align <= MIN_ALIGN { libc::malloc(size as libc::size_t) as *mut u8 } else { - #[cfg(target_os = "android")] - unsafe fn more_aligned_malloc(size: usize, align: usize) -> *mut u8 { - memalign(align as libc::size_t, size as libc::size_t) as *mut u8 - } - #[cfg(not(target_os = "android"))] - unsafe fn more_aligned_malloc(size: usize, align: usize) -> *mut u8 { - let mut out = ptr::null_mut(); - let ret = posix_memalign(&mut out, align as libc::size_t, size as libc::size_t); - if ret != 0 { - ptr::null_mut() - } else { - out as *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); + if ret != 0 { + ptr::null_mut() + } else { + out as *mut u8 } - more_aligned_malloc(size, align) } } |
