Skip to content

Commit 8c40781

Browse files
authored
Merge pull request #3826 from hawk0620/opt/avoid_self_be_nil_in_block
Avoid self if be nil in block.
2 parents 82746aa + fdea700 commit 8c40781

File tree

4 files changed

+27
-0
lines changed

4 files changed

+27
-0
lines changed

SDWebImage/Core/SDAnimatedImageView.m

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -242,12 +242,18 @@ - (void)setImage:(UIImage *)image
242242
@weakify(self);
243243
self.player.animationFrameHandler = ^(NSUInteger index, UIImage * frame) {
244244
@strongify(self);
245+
if (!self) {
246+
return;
247+
}
245248
self.currentFrameIndex = index;
246249
self.currentFrame = frame;
247250
[self.imageViewLayer setNeedsDisplay];
248251
};
249252
self.player.animationLoopHandler = ^(NSUInteger loopCount) {
250253
@strongify(self);
254+
if (!self) {
255+
return;
256+
}
251257
// Progressive image reach the current last frame index. Keep the state and pause animating. Wait for later restart
252258
if (self.isProgressive) {
253259
NSUInteger lastFrameIndex = self.player.totalFrameCount - 1;

SDWebImage/Core/SDImageCachesManager.m

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -444,6 +444,9 @@ - (void)serialQueryImageForKey:(NSString *)key options:(SDWebImageOptions)option
444444
@weakify(self);
445445
[cache queryImageForKey:key options:options context:context cacheType:queryCacheType completion:^(UIImage * _Nullable image, NSData * _Nullable data, SDImageCacheType cacheType) {
446446
@strongify(self);
447+
if (!self) {
448+
return;
449+
}
447450
if (operation.isCancelled) {
448451
// Cancelled
449452
return;
@@ -479,6 +482,9 @@ - (void)serialStoreImage:(UIImage *)image imageData:(NSData *)imageData forKey:(
479482
@weakify(self);
480483
[cache storeImage:image imageData:imageData forKey:key options:options context:context cacheType:cacheType completion:^{
481484
@strongify(self);
485+
if (!self) {
486+
return;
487+
}
482488
// Next
483489
[self serialStoreImage:image imageData:imageData forKey:key options:options context:context cacheType:cacheType completion:completionBlock enumerator:enumerator];
484490
}];
@@ -497,6 +503,9 @@ - (void)serialRemoveImageForKey:(NSString *)key cacheType:(SDImageCacheType)cach
497503
@weakify(self);
498504
[cache removeImageForKey:key cacheType:cacheType completion:^{
499505
@strongify(self);
506+
if (!self) {
507+
return;
508+
}
500509
// Next
501510
[self serialRemoveImageForKey:key cacheType:cacheType completion:completionBlock enumerator:enumerator];
502511
}];
@@ -517,6 +526,9 @@ - (void)serialContainsImageForKey:(NSString *)key cacheType:(SDImageCacheType)ca
517526
@weakify(self);
518527
[cache containsImageForKey:key cacheType:cacheType completion:^(SDImageCacheType containsCacheType) {
519528
@strongify(self);
529+
if (!self) {
530+
return;
531+
}
520532
if (operation.isCancelled) {
521533
// Cancelled
522534
return;
@@ -552,6 +564,9 @@ - (void)serialClearWithCacheType:(SDImageCacheType)cacheType completion:(SDWebIm
552564
@weakify(self);
553565
[cache clearWithCacheType:cacheType completion:^{
554566
@strongify(self);
567+
if (!self) {
568+
return;
569+
}
555570
// Next
556571
[self serialClearWithCacheType:cacheType completion:completionBlock enumerator:enumerator];
557572
}];

SDWebImage/Core/UIButton+WebCache.m

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,9 @@ - (void)sd_setImageWithURL:(nullable NSURL *)url
7373
context:mutableContext
7474
setImageBlock:^(UIImage * _Nullable image, NSData * _Nullable imageData, SDImageCacheType cacheType, NSURL * _Nullable imageURL) {
7575
@strongify(self);
76+
if (!self) {
77+
return;
78+
}
7679
[self setImage:image forState:state];
7780
}
7881
progress:progressBlock

SDWebImage/Core/UIImageView+HighlightedWebCache.m

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,9 @@ - (void)sd_setHighlightedImageWithURL:(nullable NSURL *)url
6060
context:mutableContext
6161
setImageBlock:^(UIImage * _Nullable image, NSData * _Nullable imageData, SDImageCacheType cacheType, NSURL * _Nullable imageURL) {
6262
@strongify(self);
63+
if (!self) {
64+
return;
65+
}
6366
self.highlightedImage = image;
6467
}
6568
progress:progressBlock

0 commit comments

Comments
 (0)