From 6a28b740e6fbc3352e34f718513cb2b0dddc617f Mon Sep 17 00:00:00 2001 From: appleguy Date: Mon, 29 May 2017 18:11:18 -0700 Subject: [PATCH] [Cleanup] Small fixes to improve conformance for strict compiler settings #trivial (#320) --- Source/ASCollectionView.mm | 8 +- Source/Private/ASTwoDimensionalArrayUtils.m | 2 +- .../TextExperiment/Component/ASTextInput.m | 4 +- .../TextExperiment/Component/ASTextLayout.m | 103 +++++++++--------- .../TextExperiment/Component/ASTextLine.h | 2 +- .../TextExperiment/Component/ASTextLine.m | 9 +- .../TextExperiment/String/ASTextAttribute.m | 14 +-- .../TextExperiment/String/ASTextRunDelegate.m | 4 +- .../Utility/NSAttributedString+ASText.h | 2 +- .../Utility/NSAttributedString+ASText.m | 16 +-- .../Utility/NSParagraphStyle+ASText.m | 10 +- 11 files changed, 87 insertions(+), 87 deletions(-) diff --git a/Source/ASCollectionView.mm b/Source/ASCollectionView.mm index 0fa91cb83d..d31434ed1d 100644 --- a/Source/ASCollectionView.mm +++ b/Source/ASCollectionView.mm @@ -1125,12 +1125,14 @@ static NSString * const kReuseIdentifier = @"_ASCollectionReuseIdentifier"; cell.layoutAttributes = nil; } -- (void)collectionView:(UICollectionView *)collectionView willDisplaySupplementaryView:(_ASCollectionReusableView *)view forElementKind:(NSString *)elementKind atIndexPath:(NSIndexPath *)indexPath +- (void)collectionView:(UICollectionView *)collectionView willDisplaySupplementaryView:(UICollectionReusableView *)view forElementKind:(NSString *)elementKind atIndexPath:(NSIndexPath *)indexPath { // This is a safeguard similar to the behavior for cells in -[ASCollectionView collectionView:willDisplayCell:forItemAtIndexPath:] // It ensures _ASCollectionReusableView receives layoutAttributes and calls applyLayoutAttributes. - if (view.layoutAttributes == nil) { - view.layoutAttributes = [collectionView layoutAttributesForSupplementaryElementOfKind:elementKind atIndexPath:indexPath]; + if (_ASCollectionReusableView *reusableView = ASDynamicCast(view, _ASCollectionReusableView)) { + if (reusableView.layoutAttributes == nil) { + reusableView.layoutAttributes = [collectionView layoutAttributesForSupplementaryElementOfKind:elementKind atIndexPath:indexPath]; + } } if (_asyncDelegateFlags.collectionNodeWillDisplaySupplementaryElement) { diff --git a/Source/Private/ASTwoDimensionalArrayUtils.m b/Source/Private/ASTwoDimensionalArrayUtils.m index 292291bd86..71a48d450b 100644 --- a/Source/Private/ASTwoDimensionalArrayUtils.m +++ b/Source/Private/ASTwoDimensionalArrayUtils.m @@ -36,7 +36,7 @@ NSMutableArray *ASTwoDimensionalArrayDeepMutableCopy(NSArray *indexPaths) { if (indexPaths.count == 0) { return; diff --git a/Source/Private/TextExperiment/Component/ASTextInput.m b/Source/Private/TextExperiment/Component/ASTextInput.m index 88f355b1f9..fa1c53b220 100755 --- a/Source/Private/TextExperiment/Component/ASTextInput.m +++ b/Source/Private/TextExperiment/Component/ASTextInput.m @@ -9,8 +9,8 @@ // LICENSE file in the root directory of this source tree. // -#import "ASTextInput.h" -#import "ASTextUtilities.h" +#import +#import @implementation ASTextPosition diff --git a/Source/Private/TextExperiment/Component/ASTextLayout.m b/Source/Private/TextExperiment/Component/ASTextLayout.m index 88dbfaea6b..df8d356f6b 100755 --- a/Source/Private/TextExperiment/Component/ASTextLayout.m +++ b/Source/Private/TextExperiment/Component/ASTextLayout.m @@ -9,11 +9,11 @@ // LICENSE file in the root directory of this source tree. // -#import "ASTextLayout.h" -#import "ASTextUtilities.h" -#import "ASTextAttribute.h" -#import "NSAttributedString+ASText.h" -#import "ASInternalHelpers.h" +#import +#import +#import +#import +#import const CGSize ASTextContainerMaxSize = (CGSize){0x100000, 0x100000}; @@ -173,7 +173,7 @@ static CGColorRef ASTextGetCGColor(CGColorRef color) { _pathLineWidth = [aDecoder decodeDoubleForKey:@"pathLineWidth"]; _verticalForm = [aDecoder decodeBoolForKey:@"verticalForm"]; _maximumNumberOfRows = [aDecoder decodeIntegerForKey:@"maximumNumberOfRows"]; - _truncationType = [aDecoder decodeIntegerForKey:@"truncationType"]; + _truncationType = (ASTextTruncationType)[aDecoder decodeIntegerForKey:@"truncationType"]; _truncationToken = [aDecoder decodeObjectForKey:@"truncationToken"]; _linePositionModifier = [aDecoder decodeObjectForKey:@"linePositionModifier"]; return self; @@ -389,6 +389,14 @@ dispatch_semaphore_signal(_lock); NSUInteger maximumNumberOfRows = 0; BOOL constraintSizeIsExtended = NO; CGRect constraintRectBeforeExtended = {0}; +#define FAIL_AND_RETURN {\ + if (cgPath) CFRelease(cgPath); \ + if (ctSetter) CFRelease(ctSetter); \ + if (ctFrame) CFRelease(ctFrame); \ + if (lineOrigins) free(lineOrigins); \ + if (lineRowsEdge) free(lineRowsEdge); \ + if (lineRowsIndex) free(lineRowsIndex); \ + return nil; } text = text.mutableCopy; container = container.copy; @@ -425,7 +433,7 @@ dispatch_semaphore_signal(_lock); // set cgPath and cgPathBox if (container.path == nil && container.exclusionPaths.count == 0) { - if (container.size.width <= 0 || container.size.height <= 0) goto fail; + if (container.size.width <= 0 || container.size.height <= 0) FAIL_AND_RETURN CGRect rect = (CGRect) {CGPointZero, container.size }; if (needFixLayoutSizeBug) { constraintSizeIsExtended = YES; @@ -472,7 +480,7 @@ dispatch_semaphore_signal(_lock); } cgPath = path; } - if (!cgPath) goto fail; + if (!cgPath) FAIL_AND_RETURN // frame setter config frameAttrs = [NSMutableDictionary dictionary]; @@ -487,16 +495,16 @@ dispatch_semaphore_signal(_lock); } // create CoreText objects - ctSetter = CTFramesetterCreateWithAttributedString((CFTypeRef)text); - if (!ctSetter) goto fail; - ctFrame = CTFramesetterCreateFrame(ctSetter, ASTextCFRangeFromNSRange(range), cgPath, (CFTypeRef)frameAttrs); - if (!ctFrame) goto fail; + ctSetter = CTFramesetterCreateWithAttributedString((CFAttributedStringRef)text); + if (!ctSetter) FAIL_AND_RETURN + ctFrame = CTFramesetterCreateFrame(ctSetter, ASTextCFRangeFromNSRange(range), cgPath, (CFDictionaryRef)frameAttrs); + if (!ctFrame) FAIL_AND_RETURN lines = [NSMutableArray new]; ctLines = CTFrameGetLines(ctFrame); lineCount = CFArrayGetCount(ctLines); if (lineCount > 0) { - lineOrigins = malloc(lineCount * sizeof(CGPoint)); - if (lineOrigins == NULL) goto fail; + lineOrigins = (CGPoint *)malloc(lineCount * sizeof(CGPoint)); + if (lineOrigins == NULL) FAIL_AND_RETURN CTFrameGetLineOrigins(ctFrame, CFRangeMake(0, lineCount), lineOrigins); } @@ -514,7 +522,7 @@ dispatch_semaphore_signal(_lock); // calculate line frame NSUInteger lineCurrentIdx = 0; for (NSUInteger i = 0; i < lineCount; i++) { - CTLineRef ctLine = CFArrayGetValueAtIndex(ctLines, i); + CTLineRef ctLine = (CTLineRef)CFArrayGetValueAtIndex(ctLines, i); CFArrayRef ctRuns = CTLineGetGlyphRuns(ctLine); if (!ctRuns || CFArrayGetCount(ctRuns) == 0) continue; @@ -605,10 +613,10 @@ dispatch_semaphore_signal(_lock); } } - lineRowsEdge = calloc(rowCount, sizeof(ASRowEdge)); - if (lineRowsEdge == NULL) goto fail; - lineRowsIndex = calloc(rowCount, sizeof(NSUInteger)); - if (lineRowsIndex == NULL) goto fail; + lineRowsEdge = (ASRowEdge *)calloc(rowCount, sizeof(ASRowEdge)); + if (lineRowsEdge == NULL) FAIL_AND_RETURN + lineRowsIndex = (NSUInteger *)calloc(rowCount, sizeof(NSUInteger)); + if (lineRowsIndex == NULL) FAIL_AND_RETURN NSInteger lastRowIdx = -1; CGFloat lastHead = 0; CGFloat lastFoot = 0; @@ -689,11 +697,11 @@ dispatch_semaphore_signal(_lock); NSUInteger runCount = CFArrayGetCount(runs); NSMutableDictionary *attrs = nil; if (runCount > 0) { - CTRunRef run = CFArrayGetValueAtIndex(runs, runCount - 1); + CTRunRef run = (CTRunRef)CFArrayGetValueAtIndex(runs, runCount - 1); attrs = (id)CTRunGetAttributes(run); attrs = attrs ? attrs.mutableCopy : [NSMutableArray new]; [attrs removeObjectsForKeys:[NSMutableAttributedString as_allDiscontinuousAttributeKeys]]; - CTFontRef font = (__bridge CFTypeRef)attrs[(id)kCTFontAttributeName]; + CTFontRef font = (__bridge CTFontRef)attrs[(id)kCTFontAttributeName]; CGFloat fontSize = font ? CTFontGetSize(font) : 12.0; UIFont *uiFont = [UIFont systemFontOfSize:fontSize * 0.9]; if (uiFont) { @@ -762,7 +770,7 @@ dispatch_semaphore_signal(_lock); NSMutableArray *lineRunRanges = [NSMutableArray new]; line.verticalRotateRange = lineRunRanges; for (NSUInteger r = 0; r < runCount; r++) { - CTRunRef run = CFArrayGetValueAtIndex(runs, r); + CTRunRef run = (CTRunRef)CFArrayGetValueAtIndex(runs, r); NSMutableArray *runRanges = [NSMutableArray new]; [lineRunRanges addObject:runRanges]; NSUInteger glyphCount = CTRunGetGlyphCount(run); @@ -773,7 +781,7 @@ dispatch_semaphore_signal(_lock); CFRange runStrRange = CTRunGetStringRange(run); runStrIdx[glyphCount] = runStrRange.location + runStrRange.length; CFDictionaryRef runAttrs = CTRunGetAttributes(run); - CTFontRef font = CFDictionaryGetValue(runAttrs, kCTFontAttributeName); + CTFontRef font = (CTFontRef)CFDictionaryGetValue(runAttrs, kCTFontAttributeName); BOOL isColorGlyph = ASTextCTFontContainsColorBitmapGlyphs(font); NSUInteger prevIdx = 0; @@ -879,15 +887,6 @@ dispatch_semaphore_signal(_lock); CFRelease(ctFrame); if (lineOrigins) free(lineOrigins); return layout; - -fail: - if (cgPath) CFRelease(cgPath); - if (ctSetter) CFRelease(ctSetter); - if (ctFrame) CFRelease(ctFrame); - if (lineOrigins) free(lineOrigins); - if (lineRowsEdge) free(lineRowsEdge); - if (lineRowsIndex) free(lineRowsIndex); - return nil; } + (NSArray *)layoutWithContainers:(NSArray *)containers text:(NSAttributedString *)text { @@ -1019,7 +1018,7 @@ fail: if (!line || !position) return NULL; CFArrayRef runs = CTLineGetGlyphRuns(line.CTLine); for (NSUInteger i = 0, max = CFArrayGetCount(runs); i < max; i++) { - CTRunRef run = CFArrayGetValueAtIndex(runs, i); + CTRunRef run = (CTRunRef)CFArrayGetValueAtIndex(runs, i); CFRange range = CTRunGetStringRange(run); if (position.affinity == ASTextAffinityBackward) { if (range.location < position.offset && position.offset <= range.location + range.length) { @@ -1086,14 +1085,14 @@ fail: if (!line) return NO; CFArrayRef runs = CTLineGetGlyphRuns(line.CTLine); for (NSUInteger r = 0, rMax = CFArrayGetCount(runs); r < rMax; r++) { - CTRunRef run = CFArrayGetValueAtIndex(runs, r); + CTRunRef run = (CTRunRef)CFArrayGetValueAtIndex(runs, r); NSUInteger glyphCount = CTRunGetGlyphCount(run); if (glyphCount == 0) continue; CFRange range = CTRunGetStringRange(run); if (range.length <= 1) continue; if (position <= range.location || position >= range.location + range.length) continue; CFDictionaryRef attrs = CTRunGetAttributes(run); - CTFontRef font = CFDictionaryGetValue(attrs, kCTFontAttributeName); + CTFontRef font = (CTFontRef)CFDictionaryGetValue(attrs, kCTFontAttributeName); if (!ASTextCTFontContainsColorBitmapGlyphs(font)) continue; // Here's Emoji runs (larger than 1 unichar), and position is inside the range. @@ -1133,7 +1132,7 @@ fail: BOOL RTL = NO; CFArrayRef runs = CTLineGetGlyphRuns(line.CTLine); for (NSUInteger r = 0, max = CFArrayGetCount(runs); r < max; r++) { - CTRunRef run = CFArrayGetValueAtIndex(runs, r); + CTRunRef run = (CTRunRef)CFArrayGetValueAtIndex(runs, r); CGPoint glyphPosition; CTRunGetPositions(run, CFRangeMake(0, 1), &glyphPosition); if (_container.verticalForm) { @@ -1293,13 +1292,13 @@ fail: */ CFArrayRef runs = CTLineGetGlyphRuns(line.CTLine); for (NSUInteger r = 0, max = CFArrayGetCount(runs); r < max; r++) { - CTRunRef run = CFArrayGetValueAtIndex(runs, r); + CTRunRef run = (CTRunRef)CFArrayGetValueAtIndex(runs, r); CFRange range = CTRunGetStringRange(run); if (range.location <= idx && idx < range.location + range.length) { NSUInteger glyphCount = CTRunGetGlyphCount(run); if (glyphCount == 0) break; CFDictionaryRef attrs = CTRunGetAttributes(run); - CTFontRef font = CFDictionaryGetValue(attrs, kCTFontAttributeName); + CTFontRef font = (CTFontRef)CFDictionaryGetValue(attrs, kCTFontAttributeName); if (!ASTextCTFontContainsColorBitmapGlyphs(font)) break; CFIndex indices[glyphCount]; @@ -2180,10 +2179,10 @@ static void ASTextGetRunsMaxMetric(CFArrayRef runs, CGFloat *xHeight, CGFloat *u CGFloat maxUnderlinePos = 0; CGFloat maxLineThickness = 0; for (NSUInteger i = 0, max = CFArrayGetCount(runs); i < max; i++) { - CTRunRef run = CFArrayGetValueAtIndex(runs, i); + CTRunRef run = (CTRunRef)CFArrayGetValueAtIndex(runs, i); CFDictionaryRef attrs = CTRunGetAttributes(run); if (attrs) { - CTFontRef font = CFDictionaryGetValue(attrs, kCTFontAttributeName); + CTFontRef font = (CTFontRef)CFDictionaryGetValue(attrs, kCTFontAttributeName); if (font) { CGFloat xHeight = CTFontGetXHeight(font); if (xHeight > maxXHeight) maxXHeight = xHeight; @@ -2204,7 +2203,7 @@ static void ASTextDrawRun(ASTextLine *line, CTRunRef run, CGContextRef context, BOOL runTextMatrixIsID = CGAffineTransformIsIdentity(runTextMatrix); CFDictionaryRef runAttrs = CTRunGetAttributes(run); - NSValue *glyphTransformValue = CFDictionaryGetValue(runAttrs, (__bridge const void *)(ASTextGlyphTransformAttributeName)); + NSValue *glyphTransformValue = (NSValue *)CFDictionaryGetValue(runAttrs, (__bridge const void *)(ASTextGlyphTransformAttributeName)); if (!isVertical && !glyphTransformValue) { // draw run if (!runTextMatrixIsID) { CGContextSaveGState(context); @@ -2216,7 +2215,7 @@ static void ASTextDrawRun(ASTextLine *line, CTRunRef run, CGContextRef context, CGContextRestoreGState(context); } } else { // draw glyph - CTFontRef runFont = CFDictionaryGetValue(runAttrs, kCTFontAttributeName); + CTFontRef runFont = (CTFontRef)CFDictionaryGetValue(runAttrs, kCTFontAttributeName); if (!runFont) return; NSUInteger glyphCount = CTRunGetGlyphCount(run); if (glyphCount <= 0) return; @@ -2228,7 +2227,7 @@ static void ASTextDrawRun(ASTextLine *line, CTRunRef run, CGContextRef context, CGColorRef fillColor = (CGColorRef)CFDictionaryGetValue(runAttrs, kCTForegroundColorAttributeName); fillColor = ASTextGetCGColor(fillColor); - NSNumber *strokeWidth = CFDictionaryGetValue(runAttrs, kCTStrokeWidthAttributeName); + NSNumber *strokeWidth = (NSNumber *)CFDictionaryGetValue(runAttrs, kCTStrokeWidthAttributeName); CGContextSaveGState(context); { CGContextSetFillColorWithColor(context, fillColor); @@ -2593,7 +2592,7 @@ static void ASTextDrawText(ASTextLayout *layout, CGContextRef context, CGSize si CGFloat posY = size.height - line.position.y; CFArrayRef runs = CTLineGetGlyphRuns(line.CTLine); for (NSUInteger r = 0, rMax = CFArrayGetCount(runs); r < rMax; r++) { - CTRunRef run = CFArrayGetValueAtIndex(runs, r); + CTRunRef run = (CTRunRef)CFArrayGetValueAtIndex(runs, r); CGContextSetTextMatrix(context, CGAffineTransformIdentity); CGContextSetTextPosition(context, posX, posY); ASTextDrawRun(line, run, context, size, isVertical, lineRunRanges[r], verticalOffset); @@ -2623,7 +2622,7 @@ static void ASTextDrawBlockBorder(ASTextLayout *layout, CGContextRef context, CG if (layout.truncatedLine && layout.truncatedLine.index == line.index) line = layout.truncatedLine; CFArrayRef runs = CTLineGetGlyphRuns(line.CTLine); for (NSInteger r = 0, rMax = CFArrayGetCount(runs); r < rMax; r++) { - CTRunRef run = CFArrayGetValueAtIndex(runs, r); + CTRunRef run = (CTRunRef)CFArrayGetValueAtIndex(runs, r); CFIndex glyphCount = CTRunGetGlyphCount(run); if (glyphCount == 0) continue; NSDictionary *attrs = (id)CTRunGetAttributes(run); @@ -2707,7 +2706,7 @@ static void ASTextDrawBorder(ASTextLayout *layout, CGContextRef context, CGSize if (r >= rMax) break; } - CTRunRef run = CFArrayGetValueAtIndex(runs, r); + CTRunRef run = (CTRunRef)CFArrayGetValueAtIndex(runs, r); CFIndex glyphCount = CTRunGetGlyphCount(run); if (glyphCount == 0) continue; @@ -2730,7 +2729,7 @@ static void ASTextDrawBorder(ASTextLayout *layout, CGContextRef context, CGSize CGRect extLineRect = CGRectNull; for (NSInteger rr = (ll == l) ? r : 0, rrMax = CFArrayGetCount(iRuns); rr < rrMax; rr++) { - CTRunRef iRun = CFArrayGetValueAtIndex(iRuns, rr); + CTRunRef iRun = (CTRunRef)CFArrayGetValueAtIndex(iRuns, rr); NSDictionary *iAttrs = (id)CTRunGetAttributes(iRun); ASTextBorder *iBorder = iAttrs[borderKey]; if (![border isEqual:iBorder]) { @@ -2828,7 +2827,7 @@ static void ASTextDrawDecoration(ASTextLayout *layout, CGContextRef context, CGS if (layout.truncatedLine && layout.truncatedLine.index == line.index) line = layout.truncatedLine; CFArrayRef runs = CTLineGetGlyphRuns(line.CTLine); for (NSUInteger r = 0, rMax = CFArrayGetCount(runs); r < rMax; r++) { - CTRunRef run = CFArrayGetValueAtIndex(runs, r); + CTRunRef run = (CTRunRef)CFArrayGetValueAtIndex(runs, r); CFIndex glyphCount = CTRunGetGlyphCount(run); if (glyphCount == 0) continue; @@ -3015,7 +3014,7 @@ static void ASTextDrawShadow(ASTextLayout *layout, CGContextRef context, CGSize CGFloat linePosY = size.height - line.position.y; CFArrayRef runs = CTLineGetGlyphRuns(line.CTLine); for (NSUInteger r = 0, rMax = CFArrayGetCount(runs); r < rMax; r++) { - CTRunRef run = CFArrayGetValueAtIndex(runs, r); + CTRunRef run = (CTRunRef)CFArrayGetValueAtIndex(runs, r); CGContextSetTextMatrix(context, CGAffineTransformIdentity); CGContextSetTextPosition(context, linePosX, linePosY); NSDictionary *attrs = (id)CTRunGetAttributes(run); @@ -3066,7 +3065,7 @@ static void ASTextDrawInnerShadow(ASTextLayout *layout, CGContextRef context, CG CGFloat linePosY = size.height - line.position.y; CFArrayRef runs = CTLineGetGlyphRuns(line.CTLine); for (NSUInteger r = 0, rMax = CFArrayGetCount(runs); r < rMax; r++) { - CTRunRef run = CFArrayGetValueAtIndex(runs, r); + CTRunRef run = (CTRunRef)CFArrayGetValueAtIndex(runs, r); if (CTRunGetGlyphCount(run) == 0) continue; CGContextSetTextMatrix(context, CGAffineTransformIdentity); CGContextSetTextPosition(context, linePosX, linePosY); @@ -3084,7 +3083,7 @@ static void ASTextDrawInnerShadow(ASTextLayout *layout, CGContextRef context, CG if (runImageBounds.size.width < 0.1 || runImageBounds.size.height < 0.1) continue; CFDictionaryRef runAttrs = CTRunGetAttributes(run); - NSValue *glyphTransformValue = CFDictionaryGetValue(runAttrs, (__bridge const void *)(ASTextGlyphTransformAttributeName)); + NSValue *glyphTransformValue = (NSValue *)CFDictionaryGetValue(runAttrs, (__bridge const void *)(ASTextGlyphTransformAttributeName)); if (glyphTransformValue) { runImageBounds = CGRectMake(0, 0, size.width, size.height); } @@ -3229,7 +3228,7 @@ static void ASTextDrawDebug(ASTextLayout *layout, CGContextRef context, CGSize s if (op.CTRunFillColor || op.CTRunBorderColor || op.CTRunNumberColor || op.CGGlyphFillColor || op.CGGlyphBorderColor) { CFArrayRef runs = CTLineGetGlyphRuns(line.CTLine); for (NSUInteger r = 0, rMax = CFArrayGetCount(runs); r < rMax; r++) { - CTRunRef run = CFArrayGetValueAtIndex(runs, r); + CTRunRef run = (CTRunRef)CFArrayGetValueAtIndex(runs, r); CFIndex glyphCount = CTRunGetGlyphCount(run); if (glyphCount == 0) continue; diff --git a/Source/Private/TextExperiment/Component/ASTextLine.h b/Source/Private/TextExperiment/Component/ASTextLine.h index 0db8227f20..10d2685dbc 100755 --- a/Source/Private/TextExperiment/Component/ASTextLine.h +++ b/Source/Private/TextExperiment/Component/ASTextLine.h @@ -11,7 +11,7 @@ #import #import -#import "ASTextAttribute.h" +#import @class ASTextRunGlyphRange; diff --git a/Source/Private/TextExperiment/Component/ASTextLine.m b/Source/Private/TextExperiment/Component/ASTextLine.m index 189d509360..14d9f7fd24 100755 --- a/Source/Private/TextExperiment/Component/ASTextLine.m +++ b/Source/Private/TextExperiment/Component/ASTextLine.m @@ -9,9 +9,8 @@ // LICENSE file in the root directory of this source tree. // -#import "ASTextLine.h" -#import "ASTextUtilities.h" - +#import +#import @implementation ASTextLine { CGFloat _firstGlyphPos; // first glyph position for baseline, typically 0. @@ -41,7 +40,7 @@ _range = NSMakeRange(range.location, range.length); if (CTLineGetGlyphCount(_CTLine) > 0) { CFArrayRef runs = CTLineGetGlyphRuns(_CTLine); - CTRunRef run = CFArrayGetValueAtIndex(runs, 0); + CTRunRef run = (CTRunRef)CFArrayGetValueAtIndex(runs, 0); CGPoint pos; CTRunGetPositions(run, CFRangeMake(0, 1), &pos); _firstGlyphPos = pos.x; @@ -83,7 +82,7 @@ NSMutableArray *attachmentRanges = [NSMutableArray new]; NSMutableArray *attachmentRects = [NSMutableArray new]; for (NSUInteger r = 0; r < runCount; r++) { - CTRunRef run = CFArrayGetValueAtIndex(runs, r); + CTRunRef run = (CTRunRef)CFArrayGetValueAtIndex(runs, r); CFIndex glyphCount = CTRunGetGlyphCount(run); if (glyphCount == 0) continue; NSDictionary *attrs = (id)CTRunGetAttributes(run); diff --git a/Source/Private/TextExperiment/String/ASTextAttribute.m b/Source/Private/TextExperiment/String/ASTextAttribute.m index ffdcf34928..084bdcf820 100755 --- a/Source/Private/TextExperiment/String/ASTextAttribute.m +++ b/Source/Private/TextExperiment/String/ASTextAttribute.m @@ -121,7 +121,7 @@ ASTextAttributeType ASTextAttributeGetType(NSString *name){ } - (id)copyWithZone:(NSZone *)zone { - typeof(self) one = [self.class new]; + __typeof__(self) one = [self.class new]; one.string = self.string; return one; } @@ -148,7 +148,7 @@ ASTextAttributeType ASTextAttributeGetType(NSString *name){ } - (id)copyWithZone:(NSZone *)zone { - typeof(self) one = [self.class new]; + __typeof__(self) one = [self.class new]; one.deleteConfirm = self.deleteConfirm; return one; } @@ -208,7 +208,7 @@ ASTextAttributeType ASTextAttributeGetType(NSString *name){ } - (id)copyWithZone:(NSZone *)zone { - typeof(self) one = [self.class new]; + __typeof__(self) one = [self.class new]; one.color = self.color; one.radius = self.radius; one.offset = self.offset; @@ -255,7 +255,7 @@ ASTextAttributeType ASTextAttributeGetType(NSString *name){ } - (id)copyWithZone:(NSZone *)zone { - typeof(self) one = [self.class new]; + __typeof__(self) one = [self.class new]; one.style = self.style; one.width = self.width; one.color = self.color; @@ -314,7 +314,7 @@ ASTextAttributeType ASTextAttributeGetType(NSString *name){ } - (id)copyWithZone:(NSZone *)zone { - typeof(self) one = [self.class new]; + __typeof__(self) one = [self.class new]; one.lineStyle = self.lineStyle; one.strokeWidth = self.strokeWidth; one.strokeColor = self.strokeColor; @@ -352,7 +352,7 @@ ASTextAttributeType ASTextAttributeGetType(NSString *name){ } - (id)copyWithZone:(NSZone *)zone { - typeof(self) one = [self.class new]; + __typeof__(self) one = [self.class new]; if ([self.content respondsToSelector:@selector(copy)]) { one.content = [self.content copy]; } else { @@ -390,7 +390,7 @@ ASTextAttributeType ASTextAttributeGetType(NSString *name){ } - (id)copyWithZone:(NSZone *)zone { - typeof(self) one = [self.class new]; + __typeof__(self) one = [self.class new]; one.attributes = self.attributes.mutableCopy; return one; } diff --git a/Source/Private/TextExperiment/String/ASTextRunDelegate.m b/Source/Private/TextExperiment/String/ASTextRunDelegate.m index 94c740cae1..f7739f0c8d 100755 --- a/Source/Private/TextExperiment/String/ASTextRunDelegate.m +++ b/Source/Private/TextExperiment/String/ASTextRunDelegate.m @@ -9,7 +9,7 @@ // LICENSE file in the root directory of this source tree. // -#import "ASTextRunDelegate.h" +#import static void DeallocCallback(void *ref) { ASTextRunDelegate *self = (__bridge_transfer ASTextRunDelegate *)(ref); @@ -60,7 +60,7 @@ static CGFloat GetWidthCallback(void *ref) { } - (id)copyWithZone:(NSZone *)zone { - typeof(self) one = [self.class new]; + __typeof__(self) one = [self.class new]; one.ascent = self.ascent; one.descent = self.descent; one.width = self.width; diff --git a/Source/Private/TextExperiment/Utility/NSAttributedString+ASText.h b/Source/Private/TextExperiment/Utility/NSAttributedString+ASText.h index 2f402b1e68..9fc8ec2228 100755 --- a/Source/Private/TextExperiment/Utility/NSAttributedString+ASText.h +++ b/Source/Private/TextExperiment/Utility/NSAttributedString+ASText.h @@ -12,7 +12,7 @@ #import #import -#import "ASTextAttribute.h" +#import NS_ASSUME_NONNULL_BEGIN diff --git a/Source/Private/TextExperiment/Utility/NSAttributedString+ASText.m b/Source/Private/TextExperiment/Utility/NSAttributedString+ASText.m index c3a413a460..d67dd15d2c 100755 --- a/Source/Private/TextExperiment/Utility/NSAttributedString+ASText.m +++ b/Source/Private/TextExperiment/Utility/NSAttributedString+ASText.m @@ -9,10 +9,10 @@ // LICENSE file in the root directory of this source tree. // -#import "NSAttributedString+ASText.h" -#import "NSParagraphStyle+ASText.h" -#import "ASTextRunDelegate.h" -#import "ASTextUtilities.h" +#import +#import +#import +#import #import @@ -119,7 +119,7 @@ - (NSUnderlineStyle)as_strikethroughStyleAtIndex:(NSUInteger)index { NSNumber *style = [self as_attribute:NSStrikethroughStyleAttributeName atIndex:index]; - return style.integerValue; + return (NSUnderlineStyle)style.integerValue; } - (UIColor *)as_strikethroughColor { @@ -136,7 +136,7 @@ - (NSUnderlineStyle)as_underlineStyleAtIndex:(NSUInteger)index { NSNumber *style = [self as_attribute:NSUnderlineStyleAttributeName atIndex:index]; - return style.integerValue; + return (NSUnderlineStyle)style.integerValue; } - (UIColor *)as_underlineColor { @@ -1188,9 +1188,9 @@ style. _attr_ = _attr_; \ CFStringRef cfStr = (__bridge CFStringRef)str; BOOL needFree = NO; UniChar *chars = NULL; - chars = (void *)CFStringGetCharactersPtr(cfStr); + chars = (UniChar *)CFStringGetCharactersPtr(cfStr); if (!chars) { - chars = malloc(str.length * sizeof(UniChar)); + chars = (UniChar *)malloc(str.length * sizeof(UniChar)); if (chars) { needFree = YES; CFStringGetCharacters(cfStr, CFRangeMake(0, str.length), chars); diff --git a/Source/Private/TextExperiment/Utility/NSParagraphStyle+ASText.m b/Source/Private/TextExperiment/Utility/NSParagraphStyle+ASText.m index 92847d9b3b..3401fcc829 100755 --- a/Source/Private/TextExperiment/Utility/NSParagraphStyle+ASText.m +++ b/Source/Private/TextExperiment/Utility/NSParagraphStyle+ASText.m @@ -9,8 +9,8 @@ // LICENSE file in the root directory of this source tree. // -#import "NSParagraphStyle+ASText.h" -#import "ASTextAttribute.h" +#import +#import #import // Dummy class for category @@ -92,7 +92,7 @@ if (CTParagraphStyleGetValueForSpecifier(CTStyle, kCTParagraphStyleSpecifierTabStops, sizeof(CFArrayRef), &tabStops)) { NSMutableArray *tabs = [NSMutableArray new]; [((__bridge NSArray *)(tabStops))enumerateObjectsUsingBlock : ^(id obj, NSUInteger idx, BOOL *stop) { - CTTextTabRef ctTab = (__bridge CFTypeRef)obj; + CTTextTabRef ctTab = (__bridge CTTextTabRef)obj; NSTextTab *tab = [[NSTextTab alloc] initWithTextAlignment:NSTextAlignmentFromCTTextAlignment(CTTextTabGetAlignment(ctTab)) location:CTTextTabGetLocation(ctTab) options:(__bridge id)CTTextTabGetOptions(ctTab)]; [tabs addObject:tab]; @@ -111,7 +111,7 @@ } - (CTParagraphStyleRef)as_CTStyle CF_RETURNS_RETAINED { - CTParagraphStyleSetting set[kCTParagraphStyleSpecifierCount] = { 0 }; + CTParagraphStyleSetting set[kCTParagraphStyleSpecifierCount] = { }; int count = 0; #pragma clang diagnostic push @@ -193,7 +193,7 @@ NSInteger numTabs = self.tabStops.count; if (numTabs) { [self.tabStops enumerateObjectsUsingBlock: ^(NSTextTab *tab, NSUInteger idx, BOOL *stop) { - CTTextTabRef ctTab = CTTextTabCreate(NSTextAlignmentToCTTextAlignment(tab.alignment), tab.location, (__bridge CFTypeRef)tab.options); + CTTextTabRef ctTab = CTTextTabCreate(NSTextAlignmentToCTTextAlignment(tab.alignment), tab.location, (__bridge CFDictionaryRef)tab.options); [tabs addObject:(__bridge id)ctTab]; CFRelease(ctTab); }];