jpeg pushed a commit to branch master.

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

commit d8f59d24c47e72ab77ad4e81e1f04e864bd7cf2e
Author: Jean-Philippe Andre <[email protected]>
Date:   Wed May 24 13:52:13 2017 +0900

    evas: Fix rare crash in object destruction
    
    The COW object may have not been created if the object could
    not be created. Example: a window failed to open because the
    engine could not create a surface.
---
 src/lib/evas/canvas/efl_gfx_map.c | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/src/lib/evas/canvas/efl_gfx_map.c 
b/src/lib/evas/canvas/efl_gfx_map.c
index 63667cc..ab530c3 100644
--- a/src/lib/evas/canvas/efl_gfx_map.c
+++ b/src/lib/evas/canvas/efl_gfx_map.c
@@ -166,8 +166,11 @@ _efl_gfx_map_efl_object_constructor(Eo *eo_obj, 
Efl_Gfx_Map_Data *pd)
 EOLIAN static void
 _efl_gfx_map_efl_object_destructor(Eo *eo_obj, Efl_Gfx_Map_Data *pd)
 {
-   _map_ops_clean(eo_obj, pd);
-   eina_cow_free(gfx_map_cow, (const Eina_Cow_Data **) &pd->cow);
+   if (pd->cow)
+     {
+        _map_ops_clean(eo_obj, pd);
+        eina_cow_free(gfx_map_cow, (const Eina_Cow_Data **) &pd->cow);
+     }
    efl_destructor(efl_super(eo_obj, MY_CLASS));
 }
 

-- 


Reply via email to