diff --git a/SDWebImage/Core/SDAnimatedImageView.m b/SDWebImage/Core/SDAnimatedImageView.m index 0d3ea034..c64f831e 100644 --- a/SDWebImage/Core/SDAnimatedImageView.m +++ b/SDWebImage/Core/SDAnimatedImageView.m @@ -19,7 +19,7 @@ #if SD_MAC #import -static CVReturn renderCallback(CVDisplayLinkRef displayLink, const CVTimeStamp *inNow, const CVTimeStamp *inOutputTime, CVOptionFlags flagsIn, CVOptionFlags *flagsOut, void *displayLinkContext); +static CVReturn DisplayLinkCallback(CVDisplayLinkRef displayLink, const CVTimeStamp *inNow, const CVTimeStamp *inOutputTime, CVOptionFlags flagsIn, CVOptionFlags *flagsOut, void *displayLinkContext); #endif static NSUInteger SDDeviceTotalMemory() { @@ -314,7 +314,7 @@ static NSUInteger SDDeviceFreeMemory() { if (error) { return NULL; } - CVDisplayLinkSetOutputCallback(_displayLink, renderCallback, (__bridge void *)self); + CVDisplayLinkSetOutputCallback(_displayLink, DisplayLinkCallback, (__bridge void *)self); } return _displayLink; } @@ -580,7 +580,7 @@ static NSUInteger SDDeviceFreeMemory() { } #if SD_MAC -- (void)displayDidRefresh:(CVDisplayLinkRef)displayLink duration:(NSTimeInterval)duration +- (void)displayDidRefresh:(CVDisplayLinkRef)displayLink #else - (void)displayDidRefresh:(CADisplayLink *)displayLink #endif @@ -590,9 +590,16 @@ static NSUInteger SDDeviceFreeMemory() { if (!self.shouldAnimate) { return; } - -#if SD_UIKIT + // Calculate refresh duration +#if SD_MAC + CVTimeStamp nowTime; + CVDisplayLinkGetCurrentTime(displayLink, &nowTime); + NSTimeInterval duration = (double)nowTime.videoRefreshPeriod / ((double)nowTime.videoTimeScale * nowTime.rateScalar); +#else +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" NSTimeInterval duration = displayLink.duration * displayLink.frameInterval; +#pragma clang diagnostic pop #endif NSUInteger totalFrameCount = self.totalFrameCount; NSUInteger currentFrameIndex = self.currentFrameIndex; @@ -785,14 +792,12 @@ static NSUInteger SDDeviceFreeMemory() { @end #if SD_MAC -static CVReturn renderCallback(CVDisplayLinkRef displayLink, const CVTimeStamp *inNow, const CVTimeStamp *inOutputTime, CVOptionFlags flagsIn, CVOptionFlags *flagsOut, void *displayLinkContext) { - // Calculate refresh duration - NSTimeInterval duration = (double)inOutputTime->videoRefreshPeriod / ((double)inOutputTime->videoTimeScale * inOutputTime->rateScalar); +static CVReturn DisplayLinkCallback(CVDisplayLinkRef displayLink, const CVTimeStamp *inNow, const CVTimeStamp *inOutputTime, CVOptionFlags flagsIn, CVOptionFlags *flagsOut, void *displayLinkContext) { // CVDisplayLink callback is not on main queue SDAnimatedImageView *imageView = (__bridge SDAnimatedImageView *)displayLinkContext; __weak SDAnimatedImageView *weakImageView = imageView; dispatch_async(dispatch_get_main_queue(), ^{ - [weakImageView displayDidRefresh:displayLink duration:duration]; + [weakImageView displayDidRefresh:displayLink]; }); return kCVReturnSuccess; } diff --git a/SDWebImage/Core/SDDiskCache.m b/SDWebImage/Core/SDDiskCache.m index 21648972..1d5ec44e 100644 --- a/SDWebImage/Core/SDDiskCache.m +++ b/SDWebImage/Core/SDDiskCache.m @@ -269,6 +269,8 @@ #define SD_MAX_FILE_EXTENSION_LENGTH (NAME_MAX - CC_MD5_DIGEST_LENGTH * 2 - 1) +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" static inline NSString * _Nonnull SDDiskCacheFileNameForKey(NSString * _Nullable key) { const char *str = key.UTF8String; if (str == NULL) { @@ -287,5 +289,6 @@ static inline NSString * _Nonnull SDDiskCacheFileNameForKey(NSString * _Nullable r[11], r[12], r[13], r[14], r[15], ext.length == 0 ? @"" : [NSString stringWithFormat:@".%@", ext]]; return filename; } +#pragma clang diagnostic pop @end diff --git a/SDWebImage/Core/SDWebImageIndicator.m b/SDWebImage/Core/SDWebImageIndicator.m index e89d7260..49e60994 100644 --- a/SDWebImage/Core/SDWebImageIndicator.m +++ b/SDWebImage/Core/SDWebImageIndicator.m @@ -47,10 +47,13 @@ static NSInteger UIActivityIndicatorViewStyleLarge = 101; } #if SD_UIKIT +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" - (void)commonInit { self.indicatorView = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhite]; self.indicatorView.autoresizingMask = UIViewAutoresizingFlexibleTopMargin | UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleRightMargin | UIViewAutoresizingFlexibleBottomMargin; } +#pragma clang diagnostic pop #endif #if SD_MAC @@ -85,6 +88,8 @@ static NSInteger UIActivityIndicatorViewStyleLarge = 101; @implementation SDWebImageActivityIndicator (Conveniences) +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" + (SDWebImageActivityIndicator *)grayIndicator { SDWebImageActivityIndicator *indicator = [SDWebImageActivityIndicator new]; #if SD_UIKIT @@ -168,6 +173,7 @@ static NSInteger UIActivityIndicatorViewStyleLarge = 101; #endif return indicator; } +#pragma clang diagnostic pop @end