From 74661e27f674cc7711cd8ead8fe3d1bc564946a8 Mon Sep 17 00:00:00 2001 From: Garrett Moon Date: Tue, 16 Feb 2016 13:42:56 -0800 Subject: [PATCH] Only start a fading animation if we're visible. And a threadsafety fix. --- AsyncDisplayKit/ASDisplayNode.mm | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/AsyncDisplayKit/ASDisplayNode.mm b/AsyncDisplayKit/ASDisplayNode.mm index 48bcc15d7d..8f91f358c7 100644 --- a/AsyncDisplayKit/ASDisplayNode.mm +++ b/AsyncDisplayKit/ASDisplayNode.mm @@ -768,11 +768,13 @@ static inline void filterNodesInLayoutAtIndexesWithIntersectingNodes( - (BOOL)usesImplicitHierarchyManagement { + ASDN::MutexLocker l(_propertyLock); return _usesImplicitHierarchyManagement ?: [[self class] usesImplicitHierarchyManagement]; } - (void)setUsesImplicitHierarchyManagement:(BOOL)value { + ASDN::MutexLocker l(_propertyLock); _usesImplicitHierarchyManagement = value; } @@ -1706,7 +1708,7 @@ static NSInteger incrementIfFound(NSInteger i) { [self _tearDownPlaceholderLayer]; }; - if (_placeholderFadeDuration > 0.0) { + if (_placeholderFadeDuration > 0.0 && ASInterfaceStateIncludesVisible(self.interfaceState)) { [CATransaction begin]; [CATransaction setCompletionBlock:cleanupBlock]; [CATransaction setAnimationDuration:_placeholderFadeDuration];