Skip to content

Commit b36d4fc

Browse files
committed
Allow modifying ios image cache limits
1 parent 3693928 commit b36d4fc

2 files changed

Lines changed: 11 additions & 2 deletions

File tree

Libraries/Image/RCTImageCache.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,4 +39,7 @@
3939
@end
4040

4141
@interface RCTImageCache : NSObject <RCTImageCache>
42+
43+
RCT_EXTERN void RCTSetImageCacheLimits(NSUInteger maxCachableDecodedImageSizeInBytes, NSUInteger imageCacheTotalCostLimit);
44+
4245
@end

Libraries/Image/RCTImageCache.m

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,13 @@
1818

1919
#import <React/RCTImageUtils.h>
2020

21-
static const NSUInteger RCTMaxCachableDecodedImageSizeInBytes = 2097152; // 2 MB
21+
static NSUInteger RCTMaxCachableDecodedImageSizeInBytes = 2*1024*1024;
22+
static NSUInteger RCTImageCacheTotalCostLimit = 20*1024*1024;
23+
24+
void RCTSetImageCacheLimits(NSUInteger maxCachableDecodedImageSizeInBytes, NSUInteger imageCacheTotalCostLimit) {
25+
RCTMaxCachableDecodedImageSizeInBytes = maxCachableDecodedImageSizeInBytes;
26+
RCTImageCacheTotalCostLimit = imageCacheTotalCostLimit;
27+
}
2228

2329
static NSString *RCTCacheKeyForImage(NSString *imageTag, CGSize size, CGFloat scale,
2430
RCTResizeMode resizeMode)
@@ -38,7 +44,7 @@ - (instancetype)init
3844
{
3945
if (self = [super init]) {
4046
_decodedImageCache = [NSCache new];
41-
_decodedImageCache.totalCostLimit = 20 * 1024 * 1024; // 20 MB
47+
_decodedImageCache.totalCostLimit = RCTImageCacheTotalCostLimit;
4248
_cacheStaleTimes = [NSMutableDictionary new];
4349

4450
[[NSNotificationCenter defaultCenter] addObserver:self

0 commit comments

Comments
 (0)