From 3c34d51a192b763243f1a2b8db38578de3bf954f Mon Sep 17 00:00:00 2001 From: ricky Date: Tue, 7 Jun 2016 10:50:42 -0700 Subject: [PATCH] [ASLayoutSpec] Remove cached ASTraitCollection --- AsyncDisplayKit/ASDisplayNode.mm | 5 ++++- AsyncDisplayKit/Layout/ASLayoutSpec.h | 4 ---- AsyncDisplayKit/Layout/ASLayoutSpec.mm | 8 -------- 3 files changed, 4 insertions(+), 13 deletions(-) diff --git a/AsyncDisplayKit/ASDisplayNode.mm b/AsyncDisplayKit/ASDisplayNode.mm index da1c3465e5..db313447e3 100644 --- a/AsyncDisplayKit/ASDisplayNode.mm +++ b/AsyncDisplayKit/ASDisplayNode.mm @@ -1901,7 +1901,10 @@ void recursivelyTriggerDisplayForLayer(CALayer *layer, BOOL shouldBlock) if ((_methodOverrides & ASDisplayNodeMethodOverrideLayoutSpecThatFits) || _layoutSpecBlock != NULL) { ASLayoutSpec *layoutSpec = [self layoutSpecThatFits:constrainedSize]; layoutSpec.parent = self; // This causes upward propogation of any non-default layoutable values. - layoutSpec.traitCollection = self.asyncTraitCollection; + + // manually propagate the trait collection here so that any layoutSpec children of layoutSpec will get a traitCollection + ASEnvironmentStatePropagateDown(layoutSpec, self.environmentTraitCollection); + layoutSpec.isMutable = NO; ASLayout *layout = [layoutSpec measureWithSizeRange:constrainedSize]; // Make sure layoutableObject of the root layout is `self`, so that the flattened layout will be structurally correct. diff --git a/AsyncDisplayKit/Layout/ASLayoutSpec.h b/AsyncDisplayKit/Layout/ASLayoutSpec.h index 3f7a9586d6..02a6d4f035 100644 --- a/AsyncDisplayKit/Layout/ASLayoutSpec.h +++ b/AsyncDisplayKit/Layout/ASLayoutSpec.h @@ -11,8 +11,6 @@ #import #import -@class ASTraitCollection; - NS_ASSUME_NONNULL_BEGIN /** A layout spec is an immutable object that describes a layout, loosely inspired by React. */ @@ -25,8 +23,6 @@ NS_ASSUME_NONNULL_BEGIN */ @property (nonatomic, assign) BOOL isMutable; -@property (nonatomic, strong, nullable) ASTraitCollection *traitCollection; - - (instancetype)init; /** diff --git a/AsyncDisplayKit/Layout/ASLayoutSpec.mm b/AsyncDisplayKit/Layout/ASLayoutSpec.mm index 97fbe6958b..5c84591e78 100644 --- a/AsyncDisplayKit/Layout/ASLayoutSpec.mm +++ b/AsyncDisplayKit/Layout/ASLayoutSpec.mm @@ -185,14 +185,6 @@ return _children; } -- (void)setTraitCollection:(ASTraitCollection *)traitCollection -{ - if ([traitCollection isEqualToTraitCollection:self.traitCollection] == NO) { - _traitCollection = traitCollection; - ASEnvironmentStatePropagateDown(self, [traitCollection environmentTraitCollection]); - } -} - #pragma mark - ASEnvironment - (ASEnvironmentState)environmentState