You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@weex.apache.org by bo...@apache.org on 2017/09/12 14:18:38 UTC

[1/6] incubator-weex git commit: * [ios] fix text crash

Repository: incubator-weex
Updated Branches:
  refs/heads/0.16-dev c95944b26 -> ef63a4def


* [ios] fix text crash


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

Branch: refs/heads/0.16-dev
Commit: 5e3b1299edfbd0b6046a385fe30cd1b452cf53d2
Parents: c95944b
Author: acton393 <zh...@gmail.com>
Authored: Fri Sep 8 12:11:12 2017 +0800
Committer: acton393 <zh...@gmail.com>
Committed: Fri Sep 8 12:11:12 2017 +0800

----------------------------------------------------------------------
 ios/sdk/WeexSDK/Sources/Component/WXTextComponent.m | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/5e3b1299/ios/sdk/WeexSDK/Sources/Component/WXTextComponent.m
----------------------------------------------------------------------
diff --git a/ios/sdk/WeexSDK/Sources/Component/WXTextComponent.m b/ios/sdk/WeexSDK/Sources/Component/WXTextComponent.m
index 664b0e8..7556074 100644
--- a/ios/sdk/WeexSDK/Sources/Component/WXTextComponent.m
+++ b/ios/sdk/WeexSDK/Sources/Component/WXTextComponent.m
@@ -362,12 +362,14 @@ do {\
 
 - (NSAttributedString *)ctAttributedString
 {
+    NSAttributedString * attributedString = nil;
     pthread_mutex_lock(&(_ctAttributedStringMutex));
     if (!_ctAttributedString) {
-        _ctAttributedString = [[self buildCTAttributeString] copy];
+        _ctAttributedString = [self buildCTAttributeString];
     }
+    attributedString = [_ctAttributedString copy];
     pthread_mutex_unlock(&(_ctAttributedStringMutex));
-    return [_ctAttributedString copy];
+    return attributedString;
 }
 
 - (void)repaintText:(NSNotification *)notification


[4/6] incubator-weex git commit: * [ios] fix event remove crash

Posted by bo...@apache.org.
* [ios] fix event remove crash


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

Branch: refs/heads/0.16-dev
Commit: 2b97ce89311a322c4d2f7452a8b30fe3530fc47f
Parents: 027cd7b
Author: acton393 <zh...@gmail.com>
Authored: Tue Sep 12 21:43:54 2017 +0800
Committer: acton393 <zh...@gmail.com>
Committed: Tue Sep 12 21:43:54 2017 +0800

----------------------------------------------------------------------
 .../WeexSDK/Sources/Events/WXComponent+Events.m | 35 ++++++++++++++------
 1 file changed, 24 insertions(+), 11 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/2b97ce89/ios/sdk/WeexSDK/Sources/Events/WXComponent+Events.m
----------------------------------------------------------------------
diff --git a/ios/sdk/WeexSDK/Sources/Events/WXComponent+Events.m b/ios/sdk/WeexSDK/Sources/Events/WXComponent+Events.m
index d3dceb0..8eb799b 100644
--- a/ios/sdk/WeexSDK/Sources/Events/WXComponent+Events.m
+++ b/ios/sdk/WeexSDK/Sources/Events/WXComponent+Events.m
@@ -271,9 +271,12 @@ if ([removeEventName isEqualToString:@#eventName]) {\
 {
     if (_tapGesture) {
         _tapGesture.delegate = nil;
-        if ([self.view.gestureRecognizers containsObject:_tapGesture]) {
-            [self.view removeGestureRecognizer:_tapGesture];
+        if ([self isViewLoaded]) {
+            if ([self.view.gestureRecognizers containsObject:_tapGesture]) {
+                [self.view removeGestureRecognizer:_tapGesture];
+            }
         }
+        [_tapGesture removeTarget:self action:@selector(onClick:)];
         _tapGesture = nil;
     }
 }
@@ -345,9 +348,12 @@ if ([removeEventName isEqualToString:@#eventName]) {\
   
     for (UISwipeGestureRecognizer *recognizer in _swipeGestures) {
         recognizer.delegate = nil;
-        if ([[self.view gestureRecognizers] containsObject:recognizer]) {
-            [self.view removeGestureRecognizer:recognizer];
+        if([self isViewLoaded]) {
+            if ([[self.view gestureRecognizers] containsObject:recognizer]) {
+                [self.view removeGestureRecognizer:recognizer];
+            }
         }
+        [recognizer removeTarget:self action:@selector(onSwipe:)];
     }
     _swipeGestures = nil;
 }
@@ -400,10 +406,12 @@ if ([removeEventName isEqualToString:@#eventName]) {\
 {
     if (_longPressGesture) {
         _longPressGesture.delegate = nil;
-        
-        if([[self.view gestureRecognizers] containsObject:_longPressGesture]) {
-            [self.view removeGestureRecognizer:_longPressGesture];
+        if ([self isViewLoaded]) {
+            if([[self.view gestureRecognizers] containsObject:_longPressGesture]) {
+                [self.view removeGestureRecognizer:_longPressGesture];
+            }
         }
+        [_longPressGesture removeTarget:self action:@selector(onLongPress:)];
         _longPressGesture = nil;
     }
 }
@@ -550,11 +558,14 @@ if ([removeEventName isEqualToString:@#eventName]) {\
         && !_listenHorizontalPan && !_listenVerticalPan
         ) {
         
-        if ([[self.view gestureRecognizers] containsObject:_panGesture]) {
-            [self.view removeGestureRecognizer:_panGesture];
+        if ([self isViewLoaded]) {
+            if ([[self.view gestureRecognizers] containsObject:_panGesture]) {
+                [self.view removeGestureRecognizer:_panGesture];
+            }
         }
         
         _panGesture.delegate = nil;
+        [_panGesture removeTarget:self action:@selector(onPan:)];
         _panGesture = nil;
     }
 }
@@ -620,8 +631,10 @@ if ([removeEventName isEqualToString:@#eventName]) {\
 {
     if (_touchGesture && !_touchGesture.listenTouchStart && !_touchGesture.listenTouchMove && !_touchGesture.listenTouchEnd && !_touchGesture.listenTouchCancel && !_touchGesture.listenPseudoTouch) {
         _touchGesture.delegate = nil;
-        if ([[self.view gestureRecognizers] containsObject:_touchGesture]) {
-            [self.view removeGestureRecognizer:_touchGesture];
+        if ([self isViewLoaded]) {
+            if ([[self.view gestureRecognizers] containsObject:_touchGesture]) {
+                [self.view removeGestureRecognizer:_touchGesture];
+            }
         }
         _touchGesture = nil;
     }


[2/6] incubator-weex git commit: * [ios] fix blankString when class is not NSString

Posted by bo...@apache.org.
* [ios] fix blankString when class is not NSString


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

Branch: refs/heads/0.16-dev
Commit: b645d8027068202a9f7c35dfc4b00b4f6c12f938
Parents: 5e3b129
Author: acton393 <zh...@gmail.com>
Authored: Tue Sep 12 21:11:15 2017 +0800
Committer: acton393 <zh...@gmail.com>
Committed: Tue Sep 12 21:11:15 2017 +0800

----------------------------------------------------------------------
 ios/sdk/WeexSDK/Sources/Utility/WXUtility.m | 4 ++++
 1 file changed, 4 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/b645d802/ios/sdk/WeexSDK/Sources/Utility/WXUtility.m
----------------------------------------------------------------------
diff --git a/ios/sdk/WeexSDK/Sources/Utility/WXUtility.m b/ios/sdk/WeexSDK/Sources/Utility/WXUtility.m
index 5487525..81b2ecd 100644
--- a/ios/sdk/WeexSDK/Sources/Utility/WXUtility.m
+++ b/ios/sdk/WeexSDK/Sources/Utility/WXUtility.m
@@ -326,6 +326,10 @@ CGFloat WXFloorPixelValue(CGFloat value)
 }
 
 + (BOOL)isBlankString:(NSString *)string {
+    if (![string isKindOfClass:[NSString class]]) {
+        WXLogError(@"%@ is not a string", string);
+        return true;
+    }
     if (string == nil || string == NULL || [string isKindOfClass:[NSNull class]]) {
         return true;
     }


[6/6] incubator-weex git commit: * [ios] cancel image update

Posted by bo...@apache.org.
* [ios] cancel image update


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

Branch: refs/heads/0.16-dev
Commit: ef63a4def9b919035ca7025df08f6a12c53fb80f
Parents: 2c4fdb1
Author: acton393 <zh...@gmail.com>
Authored: Tue Sep 12 22:16:51 2017 +0800
Committer: acton393 <zh...@gmail.com>
Committed: Tue Sep 12 22:16:51 2017 +0800

----------------------------------------------------------------------
 ios/sdk/WeexSDK/Sources/Component/WXImageComponent.m | 1 -
 1 file changed, 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/ef63a4de/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 fe914fb..bd31e97 100644
--- a/ios/sdk/WeexSDK/Sources/Component/WXImageComponent.m
+++ b/ios/sdk/WeexSDK/Sources/Component/WXImageComponent.m
@@ -243,7 +243,6 @@ WX_EXPORT_METHOD(@selector(save:))
 {
     if (attributes[@"src"]) {
         [self setImageSrc:[[WXConvert NSString:attributes[@"src"]] stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]]];
-        [self updateImage];
     }
     if (attributes[@"quality"]) {
         _imageQuality = [WXConvert WXImageQuality:attributes[@"quality"]];


[5/6] incubator-weex git commit: * [ios] try to resolve image crash

Posted by bo...@apache.org.
* [ios] try to resolve image crash


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

Branch: refs/heads/0.16-dev
Commit: 2c4fdb120a9930beaedf4e857c26f3ba09501d06
Parents: 2b97ce8
Author: acton393 <zh...@gmail.com>
Authored: Tue Sep 12 22:12:19 2017 +0800
Committer: acton393 <zh...@gmail.com>
Committed: Tue Sep 12 22:12:19 2017 +0800

----------------------------------------------------------------------
 .../Sources/Component/WXImageComponent.m        | 33 +++++++++++++++++---
 1 file changed, 28 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/2c4fdb12/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 b7027b1..fe914fb 100644
--- a/ios/sdk/WeexSDK/Sources/Component/WXImageComponent.m
+++ b/ios/sdk/WeexSDK/Sources/Component/WXImageComponent.m
@@ -29,6 +29,7 @@
 #import "UIBezierPath+Weex.h"
 #import "WXSDKEngine.h"
 #import "WXUtility.h"
+#import <pthread/pthread.h>
 
 @interface WXImageView : UIImageView
 
@@ -46,8 +47,12 @@
 static dispatch_queue_t WXImageUpdateQueue;
 
 @interface WXImageComponent ()
+{
+    NSString * _imageSrc;
+    pthread_mutex_t _imageSrcMutex;
+    pthread_mutexattr_t _propertMutexAttr;
+}
 
-@property (nonatomic, strong) NSString *imageSrc;
 @property (nonatomic, strong) NSString *placeholdSrc;
 @property (nonatomic, assign) CGFloat blurRadius;
 @property (nonatomic, assign) UIViewContentMode resizeMode;
@@ -72,8 +77,15 @@ WX_EXPORT_METHOD(@selector(save:))
         if (!WXImageUpdateQueue) {
             WXImageUpdateQueue = dispatch_queue_create("com.taobao.weex.ImageUpdateQueue", DISPATCH_QUEUE_SERIAL);
         }
+        
+        pthread_mutexattr_init(&(_propertMutexAttr));
+        pthread_mutexattr_settype(&(_propertMutexAttr), PTHREAD_MUTEX_RECURSIVE);
+        pthread_mutex_init(&(_imageSrcMutex), &(_propertMutexAttr));
+        
         if (attributes[@"src"]) {
+             pthread_mutex_lock(&(_imageSrcMutex));
             _imageSrc = [[WXConvert NSString:attributes[@"src"]] stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];
+             pthread_mutex_unlock(&(_imageSrcMutex));
         } else {
             WXLogWarning(@"image src is nil");
         }
@@ -223,12 +235,14 @@ WX_EXPORT_METHOD(@selector(save:))
 - (void)dealloc
 {
     [self cancelImage];
+    pthread_mutex_destroy(&(_imageSrcMutex));
+    pthread_mutexattr_destroy(&_propertMutexAttr);
 }
 
 - (void)updateAttributes:(NSDictionary *)attributes
 {
     if (attributes[@"src"]) {
-        _imageSrc = [[WXConvert NSString:attributes[@"src"]] stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];
+        [self setImageSrc:[[WXConvert NSString:attributes[@"src"]] stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]]];
         [self updateImage];
     }
     if (attributes[@"quality"]) {
@@ -308,13 +322,24 @@ WX_EXPORT_METHOD(@selector(save:))
     }
 }
 
+- (NSString *)imageSrc
+{
+    pthread_mutex_lock(&(_imageSrcMutex));
+    NSString * imageSrcCpy = [_imageSrc copy];
+    pthread_mutex_unlock(&(_imageSrcMutex));
+    
+    return imageSrcCpy;
+}
+
 - (void)setImageSrc:(NSString*)src
 {
+    pthread_mutex_lock(&(_imageSrcMutex));
     if (![src isEqualToString:_imageSrc]) {
         _imageSrc = src;
         _imageDownloadFinish = NO;
         [self updateImage];
     }
+    pthread_mutex_unlock(&(_imageSrcMutex));
 }
 
 - (void)updateImage
@@ -348,7 +373,6 @@ WX_EXPORT_METHOD(@selector(save:))
     NSString *placeholderSrc = self.placeholdSrc;
     
     if ([WXUtility isBlankString:placeholderSrc]) {
-//        WXLogError(@"image placeholder src is empty");
         return;
     }
     
@@ -387,8 +411,7 @@ WX_EXPORT_METHOD(@selector(save:))
 
 - (void)updateContentImageWithFailedBlock:(void(^)(NSString *, NSError *))downloadFailedBlock
 {
-    NSString *imageSrc = self.imageSrc;
-    
+    NSString *imageSrc = [NSString stringWithFormat:@"%@", self.imageSrc?:@""];
     if ([WXUtility isBlankString:imageSrc]) {
         WXLogError(@"image src is empty");
         return;


[3/6] incubator-weex git commit: Revert "* [ios] unload view when component is valid"

Posted by bo...@apache.org.
Revert "* [ios] unload view when component is valid"

This reverts commit 4c8c819ef9aa870dda98483ca46abe6c70f53458.


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

Branch: refs/heads/0.16-dev
Commit: 027cd7b97a64c05be79c0677497628550e9f83fc
Parents: b645d80
Author: acton393 <zh...@gmail.com>
Authored: Tue Sep 12 21:16:45 2017 +0800
Committer: acton393 <zh...@gmail.com>
Committed: Tue Sep 12 21:16:45 2017 +0800

----------------------------------------------------------------------
 ios/sdk/WeexSDK/Sources/Manager/WXComponentManager.m | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/027cd7b9/ios/sdk/WeexSDK/Sources/Manager/WXComponentManager.m
----------------------------------------------------------------------
diff --git a/ios/sdk/WeexSDK/Sources/Manager/WXComponentManager.m b/ios/sdk/WeexSDK/Sources/Manager/WXComponentManager.m
index 147dae9..55784b3 100644
--- a/ios/sdk/WeexSDK/Sources/Manager/WXComponentManager.m
+++ b/ios/sdk/WeexSDK/Sources/Manager/WXComponentManager.m
@@ -595,9 +595,7 @@ static css_node_t * rootNodeGetChild(void *context, int i)
     WXComponent *component;
     while ((component = [enumerator nextObject])) {
         dispatch_async(dispatch_get_main_queue(), ^{
-            if ([self isValid]) {
-                [component _unloadViewWithReusing:NO];
-            }
+            [component _unloadViewWithReusing:NO];
         });
     }