From d9db780b0bc06765f784aa01adc90fc582a12c48 Mon Sep 17 00:00:00 2001 From: Michael Schneider Date: Tue, 9 Aug 2016 14:56:59 -0700 Subject: [PATCH] [ASTextNode] Fix ASTextNode shadow is not rendering (#2042) * Passing through shadow in renderer attribute * Fix memory leak setting shadow color --- AsyncDisplayKit/ASTextNode.mm | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/AsyncDisplayKit/ASTextNode.mm b/AsyncDisplayKit/ASTextNode.mm index b564caa4..150644e5 100644 --- a/AsyncDisplayKit/ASTextNode.mm +++ b/AsyncDisplayKit/ASTextNode.mm @@ -44,6 +44,7 @@ struct ASTextNodeDrawParameter { @implementation ASTextNode { CGSize _shadowOffset; CGColorRef _shadowColor; + UIColor *_cachedShadowUIColor; CGFloat _shadowOpacity; CGFloat _shadowRadius; @@ -232,6 +233,10 @@ static NSArray *DefaultLinkAttributeNames = @[ NSLinkAttributeName ]; .pointSizeScaleFactors = self.pointSizeScaleFactors, .layoutManagerCreationBlock = self.layoutManagerCreationBlock, .textStorageCreationBlock = self.textStorageCreationBlock, + .shadowOffset = _shadowOffset, + .shadowColor = _cachedShadowUIColor, + .shadowOpacity = _shadowOpacity, + .shadowRadius = _shadowRadius }; } @@ -1043,7 +1048,11 @@ static CGRect ASTextNodeAdjustRenderRectForShadowPadding(CGRect rendererRect, UI if (shadowColor != NULL) { CGColorRetain(shadowColor); } + if (_shadowColor != NULL) { + CGColorRelease(_shadowColor); + } _shadowColor = shadowColor; + _cachedShadowUIColor = [UIColor colorWithCGColor:shadowColor]; [self _invalidateRenderer]; [self setNeedsDisplay]; }