From b3663476e69a1d5f9c7f86c15c3bfa95e46d53c2 Mon Sep 17 00:00:00 2001 From: Huy Nguyen Date: Tue, 31 Jan 2017 08:15:28 -0800 Subject: [PATCH] Disable background deallocation on iOS 8 and below (#2954) - The crash mainly occurs on these old iOS versions (~93%) and p6.16.1. There might be a client code issue that causes this crash, but it's hard to tell if it also crashes on newer iOS versions AND p6.17. - Let's disable this feature for now and re-investigate if it resurfaces on p6.19 and iOS 9/10. --- AsyncDisplayKit/ASRunLoopQueue.mm | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/AsyncDisplayKit/ASRunLoopQueue.mm b/AsyncDisplayKit/ASRunLoopQueue.mm index 076b6cc56a..5db795c6f5 100644 --- a/AsyncDisplayKit/ASRunLoopQueue.mm +++ b/AsyncDisplayKit/ASRunLoopQueue.mm @@ -48,6 +48,11 @@ static void runLoopSourceCallback(void *info) { - (void)releaseObjectInBackground:(id)object { + // Disable background deallocation on iOS 8 and below to avoid crashes related to UIAXDelegateClearer (#2767). + if (!AS_AT_LEAST_IOS9) { + return; + } + _queueLock.lock(); _queue.push_back(object); _queueLock.unlock();