From 4a47f74b3ae3d26e867bf2ef0879768a9a938716 Mon Sep 17 00:00:00 2001 From: Mike Blumenkrantz Date: Wed, 11 May 2016 15:33:08 -0400 Subject: [PATCH] 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 db9c7e63d..174810470 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); }