From 28109c4c706fae230f35115cb8d5a26775a0eeed Mon Sep 17 00:00:00 2001 From: Bogdan Poplauschi Date: Mon, 21 Jul 2014 15:27:16 +0300 Subject: [PATCH] Fixed SDWebImageCombinedOperation cancel crash (#798 #809) --- SDWebImage/SDWebImageManager.m | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/SDWebImage/SDWebImageManager.m b/SDWebImage/SDWebImageManager.m index 745d112..a8f9361 100644 --- a/SDWebImage/SDWebImageManager.m +++ b/SDWebImage/SDWebImageManager.m @@ -298,10 +298,13 @@ @implementation SDWebImageCombinedOperation - (void)setCancelBlock:(SDWebImageNoParamsBlock)cancelBlock { + // check if the operation is already cancelled, then we just call the cancelBlock if (self.isCancelled) { - if (cancelBlock) cancelBlock(); - } - else { + if (cancelBlock) { + cancelBlock(); + } + _cancelBlock = nil; // don't forget to nil the cancelBlock, otherwise we will get crashes + } else { _cancelBlock = [cancelBlock copy]; } }