From c668eeadb483cfea1e6a4d8d9884ceb11b5484b6 Mon Sep 17 00:00:00 2001 From: Vladimir Date: Sat, 5 Jan 2019 06:02:34 +0300 Subject: [PATCH] avoid crashing: when filter combine is already deinitialized, but still processing (weak==nil) --- IGRFilterCombine/IGRFilterCombine.m | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/IGRFilterCombine/IGRFilterCombine.m b/IGRFilterCombine/IGRFilterCombine.m index d8092d1..46f166a 100755 --- a/IGRFilterCombine/IGRFilterCombine.m +++ b/IGRFilterCombine/IGRFilterCombine.m @@ -97,8 +97,11 @@ - (void)setOriginalImage:(UIImage *)originalImage [weak setFilteredPreviewImage:thumbImage toIndex:idx]; [filter processImage:thumbImage completeBlock:^(UIImage * _Nullable processedImage) { - [weak setFilteredPreviewImage:processedImage toIndex:idx]; - weak.processedPreviewImagesCompletion(processedImage, idx); + __strong __typeof(weak) strongSelf = weak; + if (strongSelf != nil) { + [strongSelf setFilteredPreviewImage:processedImage toIndex:idx]; + strongSelf.processedPreviewImagesCompletion(processedImage, idx); + } }]; }]; @@ -112,8 +115,11 @@ - (void)setOriginalImage:(UIImage *)originalImage [weak setFilteredImage:originalImage toIndex:idx]; IGRBaseShaderFilterCancelBlock cancelBlock = [filter processImage:originalImage completeBlock:^(UIImage * _Nullable processedImage) { - [weak setFilteredImage:processedImage toIndex:idx]; - weak.processedImagesCompletion(processedImage, idx); + __strong __typeof(weak) strongSelf = weak; + if (strongSelf != nil) { + [strongSelf setFilteredImage:processedImage toIndex:idx]; + strongSelf.processedImagesCompletion(processedImage, idx); + } }]; [weak setCancelBlock:cancelBlock toIndex:idx]; }];