diff --git a/SDWebImage/SDImageCache.m b/SDWebImage/SDImageCache.m index f3d5852f..dbb0bf5e 100644 --- a/SDWebImage/SDImageCache.m +++ b/SDWebImage/SDImageCache.m @@ -195,18 +195,21 @@ static const NSInteger kDefaultCacheMaxCacheAge = 60 * 60 * 24 * 7; // 1 week dispatch_async(self.ioQueue, ^ { - UIImage *diskImage = [UIImage decodedImageWithImage:SDScaledImageForPath(key, [NSData dataWithContentsOfFile:[self cachePathForKey:key]])]; - - if (diskImage) + @autoreleasepool { - CGFloat cost = diskImage.size.height * diskImage.size.width * diskImage.scale; - [self.memCache setObject:diskImage forKey:key cost:cost]; + UIImage *diskImage = [UIImage decodedImageWithImage:SDScaledImageForPath(key, [NSData dataWithContentsOfFile:[self cachePathForKey:key]])]; + + if (diskImage) + { + CGFloat cost = diskImage.size.height * diskImage.size.width * diskImage.scale; + [self.memCache setObject:diskImage forKey:key cost:cost]; + } + + dispatch_async(dispatch_get_main_queue(), ^ + { + doneBlock(diskImage, SDImageCacheTypeDisk); + }); } - - dispatch_async(dispatch_get_main_queue(), ^ - { - doneBlock(diskImage, SDImageCacheTypeDisk); - }); }); }