[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 de05212..bf2c4ca 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 6209ea6..c748fec 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 da69b82..ce8aa23 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;
         }