[ASTextNode] Go Back to Having Renderer as Ivar (#2376)

* Revert "Disable ASTextKitRenderer cache (#2315)"

This reverts commit 4aa7c9631d.

* Revert "[ASTextNode] Add NSCache based cache for ASTextKitRenderer (#2199)"
This commit is contained in:
Adlai Holler
2016-10-13 11:37:56 -07:00
committed by appleguy
parent 60b40d8e1c
commit cb838664aa
6 changed files with 197 additions and 103 deletions

View File

@@ -116,6 +116,31 @@ static NSCharacterSet *_defaultAvoidTruncationCharacterSet()
return _calculatedSize;
}
- (void)setConstrainedSize:(CGSize)constrainedSize
{
if (!CGSizeEqualToSize(constrainedSize, _constrainedSize)) {
_sizeIsCalculated = NO;
_constrainedSize = constrainedSize;
_calculatedSize = CGSizeZero;
// Throw away the all subcomponents to create them with the new constrained size new as well as let the
// truncater do it's job again for the new constrained size. This is necessary as after a truncation did happen
// the context would use the truncated string and not the original string to truncate based on the new
// constrained size
__block ASTextKitContext *ctx = _context;
__block ASTextKitTailTruncater *tru = _truncater;
__block ASTextKitFontSizeAdjuster *adj = _fontSizeAdjuster;
_context = nil;
_truncater = nil;
_fontSizeAdjuster = nil;
ASPerformBlockOnDeallocationQueue(^{
ctx = nil;
tru = nil;
adj = nil;
});
}
}
- (void)_calculateSize
{
// if we have no scale factors or an unconstrained width, there is no reason to try to adjust the font size