From 31980094107ed37f8de70972dbcc319cc9a26339 Mon Sep 17 00:00:00 2001 From: Samuel Susla Date: Wed, 11 Mar 2020 13:57:52 -0700 Subject: [PATCH] Remove redundant queue switch from RCTLocalAssetImageLoader Summary: Switching queues in `RCTLocalAssetImageLoader` is unnecessary. We dispatch to main queue before assigning the image to `UIImageView`. Changelog: Remove redundant queue switch from RCTLocalAssetImageLoader Reviewed By: PeteTheHeat Differential Revision: D20347223 fbshipit-source-id: ff6215838f0462356d4a516e6ec31c82a742881a --- Libraries/Image/RCTLocalAssetImageLoader.mm | 33 ++++++++------------- 1 file changed, 12 insertions(+), 21 deletions(-) diff --git a/Libraries/Image/RCTLocalAssetImageLoader.mm b/Libraries/Image/RCTLocalAssetImageLoader.mm index 7a550581c4d3a7..8669ad3615d82c 100644 --- a/Libraries/Image/RCTLocalAssetImageLoader.mm +++ b/Libraries/Image/RCTLocalAssetImageLoader.mm @@ -49,28 +49,19 @@ - (RCTImageLoaderCancellationBlock)loadImageForURL:(NSURL *)imageURL partialLoadHandler:(RCTImageLoaderPartialLoadBlock)partialLoadHandler completionHandler:(RCTImageLoaderCompletionBlock)completionHandler { - __block auto cancelled = std::make_shared>(false); - RCTExecuteOnMainQueue(^{ - if (cancelled->load()) { - return; + UIImage *image = RCTImageFromLocalAssetURL(imageURL); + if (image) { + if (progressHandler) { + progressHandler(1, 1); } - - UIImage *image = RCTImageFromLocalAssetURL(imageURL); - if (image) { - if (progressHandler) { - progressHandler(1, 1); - } - completionHandler(nil, image); - } else { - NSString *message = [NSString stringWithFormat:@"Could not find image %@", imageURL]; - RCTLogWarn(@"%@", message); - completionHandler(RCTErrorWithMessage(message), nil); - } - }); - - return ^{ - cancelled->store(true); - }; + completionHandler(nil, image); + } else { + NSString *message = [NSString stringWithFormat:@"Could not find image %@", imageURL]; + RCTLogWarn(@"%@", message); + completionHandler(RCTErrorWithMessage(message), nil); + } + + return nil; } @end