[Refactor] Implement cache cost calculation as a inline function
This commit is contained in:
parent
d41bfaf8c8
commit
021607a845
|
@ -29,6 +29,10 @@ BOOL ImageDataHasPNGPreffix(NSData *data) {
|
||||||
return NO;
|
return NO;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
FOUNDATION_STATIC_INLINE NSUInteger SDCacheCostForImage(UIImage *image) {
|
||||||
|
return image.size.height * image.size.width * image.scale * image.scale;
|
||||||
|
}
|
||||||
|
|
||||||
@interface SDImageCache ()
|
@interface SDImageCache ()
|
||||||
|
|
||||||
@property (strong, nonatomic) NSCache *memCache;
|
@property (strong, nonatomic) NSCache *memCache;
|
||||||
|
@ -152,7 +156,8 @@ BOOL ImageDataHasPNGPreffix(NSData *data) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
[self.memCache setObject:image forKey:key cost:image.size.height * image.size.width * image.scale * image.scale];
|
NSUInteger cost = SDCacheCostForImage(image);
|
||||||
|
[self.memCache setObject:image forKey:key cost:cost];
|
||||||
|
|
||||||
if (toDisk) {
|
if (toDisk) {
|
||||||
dispatch_async(self.ioQueue, ^{
|
dispatch_async(self.ioQueue, ^{
|
||||||
|
@ -239,7 +244,7 @@ BOOL ImageDataHasPNGPreffix(NSData *data) {
|
||||||
// Second check the disk cache...
|
// Second check the disk cache...
|
||||||
UIImage *diskImage = [self diskImageForKey:key];
|
UIImage *diskImage = [self diskImageForKey:key];
|
||||||
if (diskImage) {
|
if (diskImage) {
|
||||||
CGFloat cost = diskImage.size.height * diskImage.size.width * diskImage.scale * diskImage.scale;
|
NSUInteger cost = SDCacheCostForImage(diskImage);
|
||||||
[self.memCache setObject:diskImage forKey:key cost:cost];
|
[self.memCache setObject:diskImage forKey:key cost:cost];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -309,7 +314,7 @@ BOOL ImageDataHasPNGPreffix(NSData *data) {
|
||||||
@autoreleasepool {
|
@autoreleasepool {
|
||||||
UIImage *diskImage = [self diskImageForKey:key];
|
UIImage *diskImage = [self diskImageForKey:key];
|
||||||
if (diskImage) {
|
if (diskImage) {
|
||||||
CGFloat cost = diskImage.size.height * diskImage.size.width * diskImage.scale * diskImage.scale;
|
NSUInteger cost = SDCacheCostForImage(diskImage);
|
||||||
[self.memCache setObject:diskImage forKey:key cost:cost];
|
[self.memCache setObject:diskImage forKey:key cost:cost];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue