evas: If there isn't clipper when recalcing clip, set mask.clip = NULL.

Summary:
There's problem in Tizen3.0.

1. Clip set mask_obj to obj for masking.
2. Unset mask_obj from obj, and del mask_obj.
3. obj has clip.mask still. So obj is trying to do mask_subrender() for freeed mask_obj.

So reset clip.mask to NULL, If there isn't clipper.

Now, there's no routine for reseting clip.mask when clipper object is freed. isn't it?
Actually I'm not sure that clip.mask=NULL should be there as this patch.

Test Plan: Tizen3.0 wearable

Reviewers: cedric, raster, wonsik, jpeg

Subscribers: scholb.kim, dkdk

Differential Revision: https://phab.enlightenment.org/D4721

Signed-off-by: Jean-Philippe Andre <jp.andre@samsung.com>
This commit is contained in:
Minkyoung Kim 2017-04-11 13:47:55 +09:00 committed by Jean-Philippe Andre
parent 6e7c8e591b
commit 60a97c9be3
1 changed files with 3 additions and 0 deletions

View File

@ -311,6 +311,9 @@ evas_object_clip_recalc_do(Evas_Object_Protected_Data *obj, Evas_Object_Protecte
cb = (cb * (nb + 1)) >> 8;
ca = (ca * (na + 1)) >> 8;
}
else obj->clip.mask = NULL;
if (!EVAS_OBJECT_DATA_VALID(obj->clip.mask))
obj->clip.mask = NULL;
if (((ca == 0) && (obj->cur->render_op == EVAS_RENDER_BLEND)) ||
(cw <= 0) || (ch <= 0))