diff --git a/Source/ASImageNode+AnimatedImage.mm b/Source/ASImageNode+AnimatedImage.mm index e83cbdcad..249923791 100644 --- a/Source/ASImageNode+AnimatedImage.mm +++ b/Source/ASImageNode+AnimatedImage.mm @@ -84,7 +84,7 @@ - (void)_locked_setAnimatedImage:(id )animatedImage [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 ce46ee64b..87ab41603 100644 --- a/Source/ASImageNode.mm +++ b/Source/ASImageNode.mm @@ -268,7 +268,7 @@ - (void)_locked_setImage:(UIImage *)image 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 650627be3..6890ec467 100644 --- a/Source/ASMultiplexImageNode.mm +++ b/Source/ASMultiplexImageNode.mm @@ -548,7 +548,7 @@ - (void)_clearImage BOOL shouldReleaseImageOnBackgroundThread = imageSize.width > kMinReleaseImageOnBackgroundSize.width || imageSize.height > kMinReleaseImageOnBackgroundSize.height; [self _setImage:nil]; - if (shouldReleaseImageOnBackgroundThread) { + if (shouldReleaseImageOnBackgroundThread && ASActivateExperimentalFeature(ASExperimentalOOMBackgroundDeallocDisable) == NO) { ASPerformBackgroundDeallocation(&image); } }