hermet pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=391339332ff91f6a304e87be4a23421d895866f2

commit 391339332ff91f6a304e87be4a23421d895866f2
Author: Hermet Park <hermetp...@gmail.com>
Date:   Tue Jan 29 18:36:09 2019 +0900

    efl_gfx_map: free alloc' memory at exception case.
---
 src/lib/evas/canvas/efl_gfx_map.c | 15 +++++++++++++--
 1 file changed, 13 insertions(+), 2 deletions(-)

diff --git a/src/lib/evas/canvas/efl_gfx_map.c 
b/src/lib/evas/canvas/efl_gfx_map.c
index c4a2cea395..a63b62ed03 100644
--- a/src/lib/evas/canvas/efl_gfx_map.c
+++ b/src/lib/evas/canvas/efl_gfx_map.c
@@ -252,6 +252,7 @@ _map_calc(const Eo *eo_obj, Evas_Object_Protected_Data 
*obj, Efl_Gfx_Map_Data *p
    Evas_Map *m;
    int imw, imh;
    int count;
+   Eina_Bool map_alloc = EINA_FALSE;
 
    if (pd->cow == &gfx_map_cow_default)
      return NULL;
@@ -302,7 +303,11 @@ _map_calc(const Eo *eo_obj, Evas_Object_Protected_Data 
*obj, Efl_Gfx_Map_Data *p
      }
    else
      {
-        if (!m) m = evas_map_new(count);
+        if (!m)
+          {
+             m = evas_map_new(count);
+             map_alloc = EINA_TRUE;
+          }
         else _evas_map_reset(m);
         m->alpha = pd->cow->alpha;
         m->smooth = pd->cow->smooth;
@@ -357,7 +362,13 @@ _map_calc(const Eo *eo_obj, Evas_Object_Protected_Data 
*obj, Efl_Gfx_Map_Data *p
                }
              else
                {
-                  EINA_SAFETY_ON_NULL_RETURN_VAL(op->pivot.pivot, NULL);
+                  if (!op->pivot.pivot)
+                    {
+                       EINA_SAFETY_ERROR("safety check failed: op->pivot.pivot 
== NULL");
+                       if (map_alloc) free(m);
+                       return NULL;
+                    }
+
                   pivot = op->pivot.pivot;
                   px = pivot->geometry.x;
                   py = pivot->geometry.y;

-- 


Reply via email to