Repository: incubator-weex
Updated Branches:
  refs/heads/master 48490acfb -> b664e0874


[WEEX-147][iOS] bugfix crash due to multi-thread access
close #914
make image placeholder property and sdk instance userInfo property atomic,

Bug:147


Project: http://git-wip-us.apache.org/repos/asf/incubator-weex/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-weex/commit/b664e087
Tree: http://git-wip-us.apache.org/repos/asf/incubator-weex/tree/b664e087
Diff: http://git-wip-us.apache.org/repos/asf/incubator-weex/diff/b664e087

Branch: refs/heads/master
Commit: b664e08746b91d4d2658245052af671dd8c5eb8d
Parents: 48490ac
Author: acton393 <zhangxing610...@gmail.com>
Authored: Mon Nov 27 20:51:10 2017 +0800
Committer: acton393 <zhangxing610...@gmail.com>
Committed: Thu Nov 30 20:14:04 2017 +0800

----------------------------------------------------------------------
 ios/sdk/WeexSDK/Sources/Component/WXImageComponent.m | 8 ++++----
 ios/sdk/WeexSDK/Sources/Model/WXSDKInstance.h        | 2 +-
 2 files changed, 5 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/b664e087/ios/sdk/WeexSDK/Sources/Component/WXImageComponent.m
----------------------------------------------------------------------
diff --git a/ios/sdk/WeexSDK/Sources/Component/WXImageComponent.m 
b/ios/sdk/WeexSDK/Sources/Component/WXImageComponent.m
index 4cbe4da..257aec6 100644
--- a/ios/sdk/WeexSDK/Sources/Component/WXImageComponent.m
+++ b/ios/sdk/WeexSDK/Sources/Component/WXImageComponent.m
@@ -54,7 +54,7 @@ static dispatch_queue_t WXImageUpdateQueue;
     pthread_mutexattr_t _propertMutexAttr;
 }
 
-@property (nonatomic, strong) NSString *placeholdSrc;
+@property (atomic, strong) NSString *placeholdSrc;
 @property (nonatomic, assign) CGFloat blurRadius;
 @property (nonatomic, assign) UIViewContentMode resizeMode;
 @property (nonatomic, assign) WXImageQuality imageQuality;
@@ -113,7 +113,7 @@ WX_EXPORT_METHOD(@selector(save:))
 - (void)configPlaceHolder:(NSDictionary*)attributes
 {
     if (attributes[@"placeHolder"] || attributes[@"placeholder"]) {
-        _placeholdSrc = [[WXConvert 
NSString:attributes[@"placeHolder"]?:attributes[@"placeholder"]]stringByTrimmingCharactersInSet:[NSCharacterSet
 whitespaceAndNewlineCharacterSet]];
+        self.placeholdSrc = [[WXConvert 
NSString:attributes[@"placeHolder"]?:attributes[@"placeholder"]]stringByTrimmingCharactersInSet:[NSCharacterSet
 whitespaceAndNewlineCharacterSet]];
     }
 }
 
@@ -384,8 +384,8 @@ WX_EXPORT_METHOD(@selector(save:))
     }
     
     WXLogDebug(@"Updating image, component:%@, placeholder:%@ ", self.ref, 
placeholderSrc);
-    NSString *newURL = [_placeholdSrc copy];
-    WX_REWRITE_URL(_placeholdSrc, WXResourceTypeImage, self.weexInstance)
+    NSString *newURL = [self.placeholdSrc copy];
+    WX_REWRITE_URL(self.placeholdSrc, WXResourceTypeImage, self.weexInstance)
     
     __weak typeof(self) weakSelf = self;
     self.placeholderOperation = [[self imageLoader] 
downloadImageWithURL:newURL imageFrame:self.calculatedFrame userInfo:nil 
completed:^(UIImage *image, NSError *error, BOOL finished) {

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/b664e087/ios/sdk/WeexSDK/Sources/Model/WXSDKInstance.h
----------------------------------------------------------------------
diff --git a/ios/sdk/WeexSDK/Sources/Model/WXSDKInstance.h 
b/ios/sdk/WeexSDK/Sources/Model/WXSDKInstance.h
index 74171e6..1d92352 100644
--- a/ios/sdk/WeexSDK/Sources/Model/WXSDKInstance.h
+++ b/ios/sdk/WeexSDK/Sources/Model/WXSDKInstance.h
@@ -174,7 +174,7 @@ typedef NS_ENUM(NSInteger, WXErrorCode) {//error.code
 /**
  *  the info stored by user.
  */
-@property (nonatomic, strong) NSMutableDictionary *userInfo;
+@property (atomic, strong) NSMutableDictionary *userInfo;
 
 /**
  *  scale factor from css unit to device pixel.

Reply via email to