[ElmSharp] fix svace issue (#42)
authorChungryeol Lim <darkleem@naver.com>
Thu, 18 Jan 2018 04:21:22 +0000 (13:21 +0900)
committerarosis78 <35049857+arosis78@users.noreply.github.com>
Thu, 18 Jan 2018 04:21:22 +0000 (13:21 +0900)
Add an optional extended description…

src/ElmSharp/ElmSharp/GenItemClass.cs
src/ElmSharp/ElmSharp/GestureLayer.cs
src/ElmSharp/ElmSharp/Image.cs

index de052121a6c92f03493c17f3ebb4d2a0bc72b075..bf2c4ca79edab9a64992d5ffe2724c3c8ce06afe 100755 (executable)
@@ -217,8 +217,8 @@ namespace ElmSharp
 
         void EvasObjectDeleted(object sender, EventArgs e)
         {
-            IntPtr handle = (sender as EvasObject).Handle;
-            s_HandleToEvasObject.Remove(handle);
+            if(sender is EvasObject evasObject)
+                s_HandleToEvasObject.Remove(evasObject);
         }
 
         IntPtr GetReusableContentCallback(IntPtr data, IntPtr obj, IntPtr part, IntPtr old)
index 6209ea66efd936223ca09f7f71dadfb6b1846a0f..c748fec6d41696b479cd1b8cb91f210c7a6a96a9 100644 (file)
@@ -559,11 +559,14 @@ namespace ElmSharp
             // thanks to the fact that we never remove item from _handlers, we don't need a lock here
             if (handlerIndex < 0 || handlerIndex >= _handlers.Count)
                 return;
-            Action<object> action = _handlers[handlerIndex].Action;
+
+            var currentHandler = _handlers[handlerIndex];
+            Action<object> action = currentHandler.Action;
             if (action == null)
                 return;
+
             // the interpretation of the event_info struct pointer depends on the GestureType
-            switch (_handlers[handlerIndex].Type)
+            switch (currentHandler.Type)
             {
                 case GestureType.Tap:
                 case GestureType.LongTap:
index da69b827454edac249cd8a0519effd8ff071f653..ce8aa23d35e0608b296357ac8e5ffdab97c64f10 100644 (file)
@@ -618,24 +618,24 @@ namespace ElmSharp
                 }
             };
 
-            MemoryStream memstream = new MemoryStream();
-            await stream.CopyToAsync(memstream);
-
-            unsafe
+            using (MemoryStream memstream = new MemoryStream())
             {
-                byte[] dataArr = memstream.ToArray();
-                fixed (byte* data = &dataArr[0])
+                await stream.CopyToAsync(memstream);
+
+                unsafe
                 {
-                    bool ret = Interop.Elementary.elm_image_memfile_set(RealHandle, data, dataArr.Length, IntPtr.Zero, IntPtr.Zero);
-                    if (!ret)
+                    byte[] dataArr = memstream.ToArray();
+                    fixed (byte* data = &dataArr[0])
                     {
-                        return false;
+                        bool ret = Interop.Elementary.elm_image_memfile_set(RealHandle, data, dataArr.Length, IntPtr.Zero, IntPtr.Zero);
+                        if (!ret)
+                        {
+                            return false;
+                        }
                     }
                 }
             }
 
-            memstream.Dispose();
-
             return await tcs.Task;
         }