diff --git a/Source/ASImageNode+AnimatedImage.mm b/Source/ASImageNode+AnimatedImage.mm index e83cbdca..24992379 100644 --- a/Source/ASImageNode+AnimatedImage.mm +++ b/Source/ASImageNode+AnimatedImage.mm @@ -84,7 +84,7 @@ [self animatedImageSet:animatedImage previousAnimatedImage:previousAnimatedImage]; // Animated image can take while to dealloc, do it off the main queue - if (previousAnimatedImage != nil) { + if (previousAnimatedImage != nil && ASActivateExperimentalFeature(ASExperimentalOOMBackgroundDeallocDisable) == NO) { ASPerformBackgroundDeallocation(&previousAnimatedImage); } }); diff --git a/Source/ASImageNode.mm b/Source/ASImageNode.mm index ce46ee64..87ab4160 100644 --- a/Source/ASImageNode.mm +++ b/Source/ASImageNode.mm @@ -268,7 +268,7 @@ typedef void (^ASImageNodeDrawParametersBlock)(ASWeakMapEntry *entry); CGSize oldImageSize = oldImage.size; BOOL shouldReleaseImageOnBackgroundThread = oldImageSize.width > kMinReleaseImageOnBackgroundSize.width || oldImageSize.height > kMinReleaseImageOnBackgroundSize.height; - if (shouldReleaseImageOnBackgroundThread) { + if (shouldReleaseImageOnBackgroundThread && ASActivateExperimentalFeature(ASExperimentalOOMBackgroundDeallocDisable) == NO) { ASPerformBackgroundDeallocation(&oldImage); } } diff --git a/Source/ASMultiplexImageNode.mm b/Source/ASMultiplexImageNode.mm index e7b69a7e..db88c9ce 100644 --- a/Source/ASMultiplexImageNode.mm +++ b/Source/ASMultiplexImageNode.mm @@ -548,7 +548,7 @@ typedef void(^ASMultiplexImageLoadCompletionBlock)(UIImage *image, id imageIdent BOOL shouldReleaseImageOnBackgroundThread = imageSize.width > kMinReleaseImageOnBackgroundSize.width || imageSize.height > kMinReleaseImageOnBackgroundSize.height; [self _setImage:nil]; - if (shouldReleaseImageOnBackgroundThread) { + if (shouldReleaseImageOnBackgroundThread && ASActivateExperimentalFeature(ASExperimentalOOMBackgroundDeallocDisable) == NO) { ASPerformBackgroundDeallocation(&image); } }