Reduce startup time. (#1288)

Make global static a function local static. This stops it from being
initialized premain and affecting startup time.
This commit is contained in:
dmaclach 2018-12-18 16:45:00 -08:00 committed by Huy Nguyen
parent 351e402426
commit 7cddc2b1be
2 changed files with 20 additions and 6 deletions

View File

@ -204,7 +204,14 @@ static ASTextKitRenderer *rendererForAttributes(ASTextKitAttributes attributes,
}
@dynamic placeholderEnabled;
static NSArray *DefaultLinkAttributeNames = @[ NSLinkAttributeName ];
static NSArray *DefaultLinkAttributeNames() {
static NSArray *names;
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
names = @[ NSLinkAttributeName ];
});
return names;
}
- (instancetype)init
{
@ -225,7 +232,7 @@ static NSArray *DefaultLinkAttributeNames = @[ NSLinkAttributeName ];
self.opaque = NO;
self.backgroundColor = [UIColor clearColor];
self.linkAttributeNames = DefaultLinkAttributeNames;
self.linkAttributeNames = DefaultLinkAttributeNames();
// Accessibility
self.isAccessibilityElement = YES;

View File

@ -179,7 +179,14 @@ static NSString *ASTextNodeTruncationTokenAttributeName = @"ASTextNodeTruncation
}
@dynamic placeholderEnabled;
static NSArray *DefaultLinkAttributeNames = @[ NSLinkAttributeName ];
static NSArray *DefaultLinkAttributeNames() {
static NSArray *names;
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
names = @[ NSLinkAttributeName ];
});
return names;
}
- (instancetype)init
{
@ -200,9 +207,9 @@ static NSArray *DefaultLinkAttributeNames = @[ NSLinkAttributeName ];
// The common case is for a text node to be non-opaque and blended over some background.
self.opaque = NO;
self.backgroundColor = [UIColor clearColor];
self.linkAttributeNames = DefaultLinkAttributeNames;
self.linkAttributeNames = DefaultLinkAttributeNames();
// Accessibility
self.isAccessibilityElement = YES;
self.accessibilityTraits = self.defaultAccessibilityTraits;