mirror of
https://github.com/zhigang1992/react-native.git
synced 2026-03-26 07:04:05 +08:00
Removed all calls to [UIImage imageWithData:] on a background thread
Summary: public I had previously assumed (based on past experience and common wisdom) that `[UIImage imageWithData:]` was safe to call concurrently and/or off the main thread, but it seems that may not be the case (see https://github.com/AFNetworking/AFNetworking/pull/2815). This diff replaces `[UIImage imageWithData:]` with ImageIO-based decoding wherever possible, and ensures that it is called on the main thread wherever that's not possible/convenient. I've also serialized access to the `NSURLCache` inside `RCTImageLoader`, which was causing a separate-but-similar crash when loading images. Reviewed By: fkgozali Differential Revision: D2678369 fb-gh-sync-id: 74d033dafcf6c412556e4c96f5ac5d3432298b18
This commit is contained in:
committed by
facebook-github-bot-6
parent
1a1c3f76a2
commit
0fe074acbd
@@ -255,7 +255,8 @@ UIImage *RCTDecodeImageWithData(NSData *data,
|
||||
|
||||
// adjust scale
|
||||
size_t actualWidth = CGImageGetWidth(imageRef);
|
||||
CGFloat scale = actualWidth / targetSize.width;
|
||||
CGFloat scale = actualWidth / targetSize.width * destScale;
|
||||
|
||||
// return image
|
||||
UIImage *image = [UIImage imageWithCGImage:imageRef
|
||||
scale:scale
|
||||
|
||||
Reference in New Issue
Block a user