react-native/Libraries/Image
Nick Lockwood 0fe074acbd 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
2015-11-20 05:17:33 -08:00
..
RCTImage.xcodeproj Added RCTDataRequestHandler 2015-10-19 09:07:06 -07:00
__tests__ Load assets from same folder as JS bundle 2015-11-05 12:53:26 -08:00
AssetRegistry.js [ReactNative] Teach flow how to deal with images 2015-08-26 18:26:09 -08:00
GlobalImageStub.js Removed references to isStatic from the codebase 2015-10-13 06:44:30 -07:00
Image.android.js Use requireNativeComponent everywhere. 2015-11-18 09:43:28 -08:00
Image.ios.js Implemented inline image support for <Text> 2015-10-08 11:56:25 -07:00
ImageResizeMode.js [react_native] JS files from D2009265: Fix resizeMode for images 2015-04-21 12:04:32 -08:00
ImageSource.js Removed references to isStatic from the codebase 2015-10-13 06:44:30 -07:00
ImageStylePropTypes.js [ReactNative] Add overflow to the whitelisted Image props 2015-07-27 11:06:27 -08:00
RCTGIFImageDecoder.h Added RCTDataRequestHandler 2015-10-19 09:07:06 -07:00
RCTGIFImageDecoder.m Replaced RCTSparseArray with NSDictionary 2015-11-14 10:28:28 -08:00
RCTImageEditingManager.h [React Native] open source ImageEditingManager native module 2015-07-29 15:57:48 -08:00
RCTImageEditingManager.m [React Native] open source ImageEditingManager native module 2015-07-29 15:57:48 -08:00
RCTImageLoader.h Improved threading for image loader 2015-10-20 05:02:23 -07:00
RCTImageLoader.m Removed all calls to [UIImage imageWithData:] on a background thread 2015-11-20 05:17:33 -08:00
RCTImageStoreManager.h RTCImageStoreManager uses NSData instead of UIImage 2015-11-17 09:55:31 -08:00
RCTImageStoreManager.m Removed all calls to [UIImage imageWithData:] on a background thread 2015-11-20 05:17:33 -08:00
RCTImageUtils.h RTCImageStoreManager uses NSData instead of UIImage 2015-11-17 09:55:31 -08:00
RCTImageUtils.m Removed all calls to [UIImage imageWithData:] on a background thread 2015-11-20 05:17:33 -08:00
RCTImageView.h Implemented inline image support for <Text> 2015-10-08 11:56:25 -07:00
RCTImageView.m Weak RCTBridge reference in RCTImageView 2015-11-17 09:14:30 -08:00
RCTImageViewManager.h Merged RCTNetworkImageView functionality into RCTStaticImage 2015-07-17 07:43:16 -08:00
RCTImageViewManager.m Added mechanism for directly mapping JS event handlers to blocks 2015-09-02 06:11:24 -08:00
RCTShadowVirtualImage.h Implemented inline image support for <Text> 2015-10-08 11:56:25 -07:00
RCTShadowVirtualImage.m Improved threading for image loader 2015-10-20 05:02:23 -07:00
RCTVirtualImageManager.h Implemented inline image support for <Text> 2015-10-08 11:56:25 -07:00
RCTVirtualImageManager.m Implemented inline image support for <Text> 2015-10-08 11:56:25 -07:00
RCTXCAssetImageLoader.h Unify XCAsset handling logic 2015-10-12 04:15:27 -07:00
RCTXCAssetImageLoader.m Improved threading for image loader 2015-10-20 05:02:23 -07:00
RelativeImageStub.js [ReactNative] Teach flow how to deal with images 2015-08-26 18:26:09 -08:00
resolveAssetSource.js Load assets from same folder as JS bundle 2015-11-05 12:53:26 -08:00