diff options
author | Minkyoung Kim <sleepigmk@gmail.com> | 2017-04-11 13:47:55 +0900 |
---|---|---|
committer | Chris Michael <cp.michael@samsung.com> | 2017-04-11 11:51:50 -0400 |
commit | 185013e11333ce409266fbb84976e840af239e2b (patch) | |
tree | 399f3a9708bd70fc8cbd74d46d783460df9c3c36 | |
parent | 2fc504ea518dbbca51dfa5d12ff1b234c226e63b (diff) | |
download | efl-185013e11333ce409266fbb84976e840af239e2b.tar.gz |
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>
-rw-r--r-- | src/lib/evas/canvas/evas_object_main.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/src/lib/evas/canvas/evas_object_main.c b/src/lib/evas/canvas/evas_object_main.c index adae7d5e74..dcfecfce54 100644 --- a/src/lib/evas/canvas/evas_object_main.c +++ b/src/lib/evas/canvas/evas_object_main.c @@ -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)) |