File tree Expand file tree Collapse file tree 1 file changed +1
-18
lines changed
library/std/src/sys/pal/unix Expand file tree Collapse file tree 1 file changed +1
-18
lines changed Original file line number Diff line number Diff line change @@ -59,32 +59,15 @@ unsafe impl GlobalAlloc for System {
5959}
6060
6161cfg_if:: cfg_if! {
62+ // We use posix_memalign wherever possible, but not all targets have that function.
6263 if #[ cfg( any(
63- target_os = "android" ,
6464 target_os = "redox" ,
6565 target_os = "espidf" ,
6666 target_os = "horizon" ,
6767 target_os = "vita" ,
6868 ) ) ] {
6969 #[ inline]
7070 unsafe fn aligned_malloc( layout: & Layout ) -> * mut u8 {
71- // On android we currently target API level 9 which unfortunately
72- // doesn't have the `posix_memalign` API used below. Instead we use
73- // `memalign`, but this unfortunately has the property on some systems
74- // where the memory returned cannot be deallocated by `free`!
75- //
76- // Upon closer inspection, however, this appears to work just fine with
77- // Android, so for this platform we should be fine to call `memalign`
78- // (which is present in API level 9). Some helpful references could
79- // possibly be chromium using memalign [1], attempts at documenting that
80- // memalign + free is ok [2] [3], or the current source of chromium
81- // which still uses memalign on android [4].
82- //
83- // [1]: https://codereview.chromium.org/10796020/
84- // [2]: https://code.google.com/p/android/issues/detail?id=35391
85- // [3]: https://bugs.chromium.org/p/chromium/issues/detail?id=138579
86- // [4]: https://chromium.googlesource.com/chromium/src/base/+/master/
87- // /memory/aligned_memory.cc
8871 libc:: memalign( layout. align( ) , layout. size( ) ) as * mut u8
8972 }
9073 } else {
You can’t perform that action at this time.
0 commit comments