More locks

This commit is contained in:
Huy Nguyen
2016-03-03 14:48:32 -08:00
parent 0d2fbdf19f
commit 3b0b7fa888

View File

@@ -611,6 +611,7 @@ static ASDisplayNodeMethodOverrides GetASDisplayNodeMethodOverrides(Class c)
- (ASLayout *)measureWithSizeRange:(ASSizeRange)constrainedSize
{
void (^manageSubnodesBlock)() = ^void() {
ASDN::MutexLocker l(_propertyLock);
if (self.usesImplicitHierarchyManagement) {
[self __implicitlyInsertSubnodes];
[self __implicitlyRemoveSubnodes];
@@ -675,6 +676,7 @@ static ASDisplayNodeMethodOverrides GetASDisplayNodeMethodOverrides(Class c)
}
ASPerformBlockOnMainThread(^{
ASDN::MutexLocker l(_propertyLock);
_transitionContext = [[_ASTransitionContext alloc] initWithAnimation:animated delegate:self];
[self __implicitlyInsertSubnodes];
[self animateLayoutTransition:_transitionContext];
@@ -684,6 +686,7 @@ static ASDisplayNodeMethodOverrides GetASDisplayNodeMethodOverrides(Class c)
- (void)__calculateSubnodeOperations
{
ASDN::MutexLocker l(_propertyLock);
if (_previousLayout) {
NSIndexSet *insertions, *deletions;
[_previousLayout.immediateSublayouts asdk_diffWithArray:_layout.immediateSublayouts