discomfitor pushed a commit to branch master.

http://git.enlightenment.org/core/enlightenment.git/commit/?id=4a47f74b3ae3d26e867bf2ef0879768a9a938716

commit 4a47f74b3ae3d26e867bf2ef0879768a9a938716
Author: Mike Blumenkrantz <zm...@osg.samsung.com>
Date:   Wed May 11 15:33:08 2016 -0400

    enforce setting alpha on comp objects only after image data has been set
    
    setting alpha can trigger a render sync, crashing if the old data is no
    longer valid
---
 src/bin/e_comp_object.c | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

diff --git a/src/bin/e_comp_object.c b/src/bin/e_comp_object.c
index db9c7e6..1748104 100644
--- a/src/bin/e_comp_object.c
+++ b/src/bin/e_comp_object.c
@@ -3824,10 +3824,7 @@ e_comp_object_render(Evas_Object *obj)
 
    if (e_comp->comp_type == E_PIXMAP_TYPE_WL)
      {
-        Eina_Bool alpha = e_pixmap_image_is_argb(cw->ec->pixmap);
-
         pix = e_pixmap_image_data_get(cw->ec->pixmap);
-        evas_object_image_alpha_set(cw->obj, alpha);
         ret = EINA_TRUE;
         goto end;
      }
@@ -3887,9 +3884,11 @@ e_comp_object_render(Evas_Object *obj)
    eina_iterator_free(it);
 end:
    evas_object_image_data_set(cw->obj, cw->blanked ? NULL : pix);
+   _e_comp_object_alpha_set(cw);
    EINA_LIST_FOREACH(cw->obj_mirror, l, o)
      {
         evas_object_image_data_set(o, pix);
+        evas_object_image_alpha_set(o, evas_object_image_alpha_get(cw->obj));
         evas_object_image_pixels_dirty_set(o, EINA_FALSE);
      }
 

-- 


Reply via email to