File tree 1 file changed +1
-18
lines changed
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 {
59
59
}
60
60
61
61
cfg_if:: cfg_if! {
62
+ // We use posix_memalign wherever possible, but not all targets have that function.
62
63
if #[ cfg( any(
63
- target_os = "android" ,
64
64
target_os = "redox" ,
65
65
target_os = "espidf" ,
66
66
target_os = "horizon" ,
67
67
target_os = "vita" ,
68
68
) ) ] {
69
69
#[ inline]
70
70
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
88
71
libc:: memalign( layout. align( ) , layout. size( ) ) as * mut u8
89
72
}
90
73
} else {
You can’t perform that action at this time.
0 commit comments