From c5753c44ea0c9b5d43f563e6376168ed7b68d50f 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 17079418..9795d2a1 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; @@ -244,6 +245,10 @@ static NSArray *DefaultLinkAttributeNames = @[ NSLinkAttributeName ]; .pointSizeScaleFactors = self.pointSizeScaleFactors, .layoutManagerCreationBlock = self.layoutManagerCreationBlock, .textStorageCreationBlock = self.textStorageCreationBlock, + .shadowOffset = _shadowOffset, + .shadowColor = _cachedShadowUIColor, + .shadowOpacity = _shadowOpacity, + .shadowRadius = _shadowRadius }; } @@ -1055,7 +1060,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]; }