iOS/tvOS/watchOS: Fix alloc w. large alignment on older versions
Tested on an old MacBook and the iOS simulator.
This commit is contained in:
parent
aa606bb246
commit
53bd38b7c5
@ -13,7 +13,13 @@ unsafe impl GlobalAlloc for System {
|
||||
if layout.align() <= MIN_ALIGN && layout.align() <= layout.size() {
|
||||
libc::malloc(layout.size()) as *mut u8
|
||||
} else {
|
||||
#[cfg(target_os = "macos")]
|
||||
// `posix_memalign` returns a non-aligned value if supplied a very
|
||||
// large alignment on older versions of Apple's platforms (unknown
|
||||
// exactly which version range, but the issue is definitely
|
||||
// present in macOS 10.14 and iOS 13.3).
|
||||
//
|
||||
// <https://github.com/rust-lang/rust/issues/30170>
|
||||
#[cfg(target_vendor = "apple")]
|
||||
{
|
||||
if layout.align() > (1 << 31) {
|
||||
return ptr::null_mut();
|
||||
|
Loading…
x
Reference in New Issue
Block a user