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)); } --
