[NUI] Fix VD Svace issue (#568)
authorhuiyueun <35286162+huiyueun@users.noreply.github.com>
Wed, 21 Nov 2018 08:23:34 +0000 (17:23 +0900)
committerdongsug-song <35130733+dongsug-song@users.noreply.github.com>
Wed, 21 Nov 2018 08:23:34 +0000 (17:23 +0900)
Signed-off-by: huiyu.eun <huiyu.eun@samsung.com>
src/Tizen.NUI/src/internal/Xaml/MarkupExtensions/StaticExtension.cs
src/Tizen.NUI/src/internal/XamlBinding/Binding.cs
src/Tizen.NUI/src/internal/XamlBinding/SynchronizedList.cs

index 629cf1d..d22e0ed 100755 (executable)
@@ -36,9 +36,9 @@ namespace Tizen.NUI.Xaml
 
             var type = typeResolver.Resolve(typename, serviceProvider);
 
-            var pinfo = type.GetRuntimeProperties().FirstOrDefault(pi => pi.Name == membername && pi.GetMethod.IsStatic);
+            var pinfo = type.GetRuntimeProperties().FirstOrDefault(pi => pi.GetMethod != null && pi.Name == membername && pi.GetMethod.IsStatic);
             if (pinfo != null)
-                return pinfo.GetMethod.Invoke(null, new object[] { });
+                return pinfo.GetMethod?.Invoke(null, Array.Empty<object>());
 
             var finfo = type.GetRuntimeFields().FirstOrDefault(fi => fi.Name == membername && fi.IsStatic);
             if (finfo != null)
index be4bfaa..6debd8c 100755 (executable)
@@ -200,7 +200,7 @@ namespace Tizen.NUI.Binding
                     string indexerName = defaultMember != null ? defaultMember.MemberName : "Item";
 
                     MethodInfo getterInfo =
-                        declarerType.GetProperties().Where(pi => pi.Name == indexerName && pi.CanRead && pi.GetMethod.IsPublic && !pi.GetMethod.IsStatic).Select(pi => pi.GetMethod).FirstOrDefault();
+                        declarerType.GetProperties().Where(pi => (pi.GetMethod != null) && pi.Name == indexerName && pi.CanRead && pi.GetMethod.IsPublic && !pi.GetMethod.IsStatic).Select(pi => pi.GetMethod).FirstOrDefault();
                     if (getterInfo != null)
                     {
                         if (getterInfo == methodCall.Method)
index 54f6648..a193149 100755 (executable)
@@ -75,14 +75,15 @@ namespace Tizen.NUI.Binding
 
         public IEnumerator<T> GetEnumerator()
         {
-            ReadOnlyCollection<T> snap = _snapshot;
-            if (snap == null)
+            lock (_list)
             {
-                lock (_list)
-                    _snapshot = snap = new ReadOnlyCollection<T>(_list.ToList());
+                ReadOnlyCollection<T> snap = _snapshot;
+                if (snap == null)
+                {
+                        _snapshot = snap = new ReadOnlyCollection<T>(_list.ToList());
+                }
+                return snap?.GetEnumerator();
             }
-
-            return snap?.GetEnumerator();
         }
 
         public int IndexOf(T item)