Move from ASSentinel to a atomic int

This commit is contained in:
Michael Schneider 2016-05-05 20:24:26 -07:00
parent dc6d2e7660
commit d1054d6ed9
2 changed files with 4 additions and 12 deletions

View File

@ -373,7 +373,6 @@ static ASDisplayNodeMethodOverrides GetASDisplayNodeMethodOverrides(Class c)
_pendingViewState = nil; _pendingViewState = nil;
_displaySentinel = nil; _displaySentinel = nil;
_transitionSentinel = nil;
_pendingDisplayNodes = nil; _pendingDisplayNodes = nil;
} }
@ -825,11 +824,8 @@ static ASDisplayNodeMethodOverrides GetASDisplayNodeMethodOverrides(Class c)
{ {
ASDN::MutexLocker l(_propertyLock); ASDN::MutexLocker l(_propertyLock);
_transitionInProgress = YES; _transitionInProgress = YES;
_transitionID = OSAtomicAdd32(1, &_transitionID);
if (!_transitionSentinel) { return _transitionID;
_transitionSentinel = [[ASSentinel alloc] init];
}
return [_transitionSentinel increment];
} }
- (void)_finishOrCancelTransition - (void)_finishOrCancelTransition
@ -841,11 +837,7 @@ static ASDisplayNodeMethodOverrides GetASDisplayNodeMethodOverrides(Class c)
- (BOOL)_shouldAbortTransitionWithID:(int32_t)transitionID - (BOOL)_shouldAbortTransitionWithID:(int32_t)transitionID
{ {
ASDN::MutexLocker l(_propertyLock); ASDN::MutexLocker l(_propertyLock);
if (_transitionInProgress) { return (!_transitionInProgress || _transitionID != transitionID);
return _transitionSentinel == nil || transitionID != _transitionSentinel.value;
}
return YES;
} }
- (void)animateLayoutTransition:(id<ASContextTransitioning>)context - (void)animateLayoutTransition:(id<ASContextTransitioning>)context

View File

@ -94,7 +94,7 @@ FOUNDATION_EXPORT NSString * const ASRenderingEngineDidDisplayNodesScheduledBefo
ASSentinel *_displaySentinel; ASSentinel *_displaySentinel;
ASSentinel *_transitionSentinel; int32_t _transitionID;
BOOL _transitionInProgress; BOOL _transitionInProgress;
// This is the desired contentsScale, not the scale at which the layer's contents should be displayed // This is the desired contentsScale, not the scale at which the layer's contents should be displayed