From dc12042589794b9bd4bbb4d477ca83576d83fe23 Mon Sep 17 00:00:00 2001 From: appleguy Date: Sat, 9 Jul 2016 21:16:29 -0700 Subject: [PATCH] [ASDisplayNode] Do not start measurement for a transition if we have never been provided a constrainedSize. (#1844) --- AsyncDisplayKit/ASDisplayNode.mm | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/AsyncDisplayKit/ASDisplayNode.mm b/AsyncDisplayKit/ASDisplayNode.mm index 2de5996f92..31c770cae6 100644 --- a/AsyncDisplayKit/ASDisplayNode.mm +++ b/AsyncDisplayKit/ASDisplayNode.mm @@ -695,6 +695,11 @@ static ASDisplayNodeMethodOverrides GetASDisplayNodeMethodOverrides(Class c) shouldMeasureAsync:(BOOL)shouldMeasureAsync measurementCompletion:(void(^)())completion { + if (_layout == nil) { + // constrainedSizeRange returns a struct and is invalid to call on nil. + // Defaulting to CGSizeZero can cause negative values in client layout code. + return; + } [self invalidateCalculatedLayout]; [self transitionLayoutWithSizeRange:_layout.constrainedSizeRange animated:animated