From e79def359789dde7ed31b35c1c8423836af430e6 Mon Sep 17 00:00:00 2001 From: Huy Nguyen Date: Wed, 2 Aug 2017 15:08:24 +0100 Subject: [PATCH] Call _locked_constrainedSizeForLayoutPass with the lock actually held --- Source/ASDisplayNode+Layout.mm | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/Source/ASDisplayNode+Layout.mm b/Source/ASDisplayNode+Layout.mm index 66a568768..816d25c5b 100644 --- a/Source/ASDisplayNode+Layout.mm +++ b/Source/ASDisplayNode+Layout.mm @@ -520,7 +520,14 @@ - (void)transitionLayoutWithAnimation:(BOOL)animated measurementCompletion:(void(^)())completion { ASDisplayNodeAssertMainThread(); - [self transitionLayoutWithSizeRange:[self _locked_constrainedSizeForLayoutPass] + + ASSizeRange sizeRange; + { + ASDN::MutexLocker l(__instanceLock__); + sizeRange = [self _locked_constrainedSizeForLayoutPass]; + } + + [self transitionLayoutWithSizeRange:sizeRange animated:animated shouldMeasureAsync:shouldMeasureAsync measurementCompletion:completion];