From d1054d6ed98a3fc68ab078b3d6af360ae09f21d2 Mon Sep 17 00:00:00 2001 From: Michael Schneider Date: Thu, 5 May 2016 20:24:26 -0700 Subject: [PATCH] Move from ASSentinel to a atomic int --- AsyncDisplayKit/ASDisplayNode.mm | 14 +++----------- AsyncDisplayKit/Private/ASDisplayNodeInternal.h | 2 +- 2 files changed, 4 insertions(+), 12 deletions(-) diff --git a/AsyncDisplayKit/ASDisplayNode.mm b/AsyncDisplayKit/ASDisplayNode.mm index 6d8515d74f..6e54a450c1 100644 --- a/AsyncDisplayKit/ASDisplayNode.mm +++ b/AsyncDisplayKit/ASDisplayNode.mm @@ -373,7 +373,6 @@ static ASDisplayNodeMethodOverrides GetASDisplayNodeMethodOverrides(Class c) _pendingViewState = nil; _displaySentinel = nil; - _transitionSentinel = nil; _pendingDisplayNodes = nil; } @@ -825,11 +824,8 @@ static ASDisplayNodeMethodOverrides GetASDisplayNodeMethodOverrides(Class c) { ASDN::MutexLocker l(_propertyLock); _transitionInProgress = YES; - - if (!_transitionSentinel) { - _transitionSentinel = [[ASSentinel alloc] init]; - } - return [_transitionSentinel increment]; + _transitionID = OSAtomicAdd32(1, &_transitionID); + return _transitionID; } - (void)_finishOrCancelTransition @@ -841,11 +837,7 @@ static ASDisplayNodeMethodOverrides GetASDisplayNodeMethodOverrides(Class c) - (BOOL)_shouldAbortTransitionWithID:(int32_t)transitionID { ASDN::MutexLocker l(_propertyLock); - if (_transitionInProgress) { - return _transitionSentinel == nil || transitionID != _transitionSentinel.value; - } - - return YES; + return (!_transitionInProgress || _transitionID != transitionID); } - (void)animateLayoutTransition:(id)context diff --git a/AsyncDisplayKit/Private/ASDisplayNodeInternal.h b/AsyncDisplayKit/Private/ASDisplayNodeInternal.h index b4668ac613..ca11a8746a 100644 --- a/AsyncDisplayKit/Private/ASDisplayNodeInternal.h +++ b/AsyncDisplayKit/Private/ASDisplayNodeInternal.h @@ -94,7 +94,7 @@ FOUNDATION_EXPORT NSString * const ASRenderingEngineDidDisplayNodesScheduledBefo ASSentinel *_displaySentinel; - ASSentinel *_transitionSentinel; + int32_t _transitionID; BOOL _transitionInProgress; // This is the desired contentsScale, not the scale at which the layer's contents should be displayed