From 715a678829cca323f4091f03e18fd8ad726f05e1 Mon Sep 17 00:00:00 2001 From: rcancro Date: Thu, 28 Jan 2016 15:18:45 -0800 Subject: [PATCH] scott's comments --- AsyncDisplayKit/ASTextNode.mm | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/AsyncDisplayKit/ASTextNode.mm b/AsyncDisplayKit/ASTextNode.mm index 80e4f547da..39441ed1c2 100644 --- a/AsyncDisplayKit/ASTextNode.mm +++ b/AsyncDisplayKit/ASTextNode.mm @@ -102,7 +102,7 @@ static NSString *ASTextNodeTruncationTokenAttributeName = @"ASTextNodeTruncation UILongPressGestureRecognizer *_longPressGestureRecognizer; - // Forwards NSLayoutManagerDelegate methods related to word kerning + ASDN::Mutex _wordKernerLock; ASTextNodeWordKerner *_wordKerner; } @@ -148,8 +148,6 @@ static NSArray *DefaultLinkAttributeNames = @[ NSLinkAttributeName ]; // on the special placeholder behavior of ASTextNode. _placeholderColor = ASDisplayNodeDefaultPlaceholderColor(); _placeholderInsets = UIEdgeInsetsMake(1.0, 0.0, 1.0, 0.0); - - _wordKerner = [[ASTextNodeWordKerner alloc] init]; } return self; @@ -264,7 +262,7 @@ static NSArray *DefaultLinkAttributeNames = @[ NSLinkAttributeName ]; .maximumNumberOfLines = _maximumNumberOfLines, .exclusionPaths = _exclusionPaths, .minimumScaleFactor = _minimumScaleFactor, - .layoutManagerDelegate = _wordKerner, + .layoutManagerDelegate = [self _wordKerner], }; } @@ -300,6 +298,15 @@ static NSArray *DefaultLinkAttributeNames = @[ NSLinkAttributeName ]; } } +- (ASTextNodeWordKerner *)_wordKerner +{ + ASDN::MutexLocker l(_wordKernerLock); + if (_wordKerner == nil) { + _wordKerner = [[ASTextNodeWordKerner alloc] init]; + } + return _wordKerner; +} + #pragma mark - Layout and Sizing - (BOOL)_needInvalidateRendererForBoundsSize:(CGSize)boundsSize