cedric pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=067cbf6df84943c86646b57d87c5ec3c3fd17fbb
commit 067cbf6df84943c86646b57d87c5ec3c3fd17fbb Author: Viacheslav Lvov <v.l...@samsung.com> Date: Thu Dec 19 17:34:05 2013 +0900 evas - render - clear out pending object array more aggressively There was detected that pending_objects array of Evas structure of email application stores at least 550 objects that never are removed from this array. These objects are not active and are not about to render. We know that once the decision not to remove changed objects from this array was accepted. But then the criterion of leaving object in this array was weakened. We propose to weaken this criterion more sufficiently – do not store in this array objects that can not be cause of whole canvas invalidation. Our exact proposal for this criterion you can see in the patch attached to this issue. NOTE: This patch is a try, there may be some side effect especially with mapped object that we didn't find, so it could be reverted if before the release of 1.9 we see anything wrong. Reviewers: cedric CC: cedric, seoz Differential Revision: https://phab.enlightenment.org/D354 Signed-off-by: Cedric BAIL <cedric.b...@samsung.com> --- src/lib/evas/canvas/evas_render.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/lib/evas/canvas/evas_render.c b/src/lib/evas/canvas/evas_render.c index 7d3491a..6dab39c 100644 --- a/src/lib/evas/canvas/evas_render.c +++ b/src/lib/evas/canvas/evas_render.c @@ -825,6 +825,12 @@ pending_change(void *data, void *gdata EINA_UNUSED) obj->pre_render_done = EINA_FALSE; evas_object_change_reset(eo_obj); } + else if (!_evas_render_can_render(eo_obj, obj) && + (!obj->is_active) && (!obj->render_pre) && + (!obj->rect_del)) + { + evas_object_change_reset(eo_obj); + } if (!obj->changed) eo_data_unref(eo_obj, obj); return obj->changed ? EINA_TRUE : EINA_FALSE; } --