Disable Text Node Fast Path (#2581)

* Disable text node fast path

* Actually commit the test change
This commit is contained in:
Adlai Holler
2016-11-09 10:25:02 +09:00
committed by GitHub
parent fb6d1830a0
commit 5c15869087
4 changed files with 13 additions and 8 deletions

View File

@@ -205,12 +205,15 @@ static NSCharacterSet *_defaultAvoidTruncationCharacterSet()
- (BOOL)canUseFastPath
{
return self.isScaled == NO
&& self.usesCustomTruncation == NO
&& self.usesExclusionPaths == NO
// NSAttributedString drawing methods ignore usesLineFragmentOrigin if max line count 1,
// rendering them useless:
&& (_attributes.maximumNumberOfLines != 1 || isinf(_constrainedSize.width));
return NO;
// Fast path is temporarily disabled, because it's crashing in production.
// NOTE: Remember to re-enable testFastPathTruncation when we re-enable this.
// return self.isScaled == NO
// && self.usesCustomTruncation == NO
// && self.usesExclusionPaths == NO
// // NSAttributedString drawing methods ignore usesLineFragmentOrigin if max line count 1,
// // rendering them useless:
// && (_attributes.maximumNumberOfLines != 1 || isinf(_constrainedSize.width));
}
#pragma mark - Drawing

View File

@@ -75,7 +75,8 @@
ASSnapshotVerifyView(backgroundView, nil);
}
- (void)testThatFastPathTruncationWorks
// This test is disabled because the fast-path is disabled.
- (void)DISABLED_testThatFastPathTruncationWorks
{
ASTextNode *textNode = [[ASTextNode alloc] init];
textNode.attributedText = [[NSAttributedString alloc] initWithString:@"Quality is Important" attributes:@{ NSForegroundColorAttributeName: [UIColor blueColor], NSFontAttributeName: [UIFont italicSystemFontOfSize:24] }];
@@ -87,8 +88,9 @@
{
ASTextNode *textNode = [[ASTextNode alloc] init];
textNode.attributedText = [[NSAttributedString alloc] initWithString:@"Quality is Important" attributes:@{ NSForegroundColorAttributeName: [UIColor blueColor], NSFontAttributeName: [UIFont italicSystemFontOfSize:24] }];
[textNode layoutThatFits:ASSizeRangeMake(CGSizeZero, CGSizeMake(100, 50))];
// Set exclusion paths to trigger slow path
textNode.exclusionPaths = @[ [UIBezierPath bezierPath] ];
[textNode layoutThatFits:ASSizeRangeMake(CGSizeZero, CGSizeMake(100, 50))];
ASSnapshotVerifyNode(textNode, nil);
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.9 KiB

After

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.9 KiB

After

Width:  |  Height:  |  Size: 3.4 KiB