diff options
authorViacheslav Lvov <>2013-12-19 17:34:05 +0900
committerCedric BAIL <>2013-12-20 14:43:23 +0900
commit067cbf6df84943c86646b57d87c5ec3c3fd17fbb (patch)
parent846bbafbfb23c3b01eacb7a5382087ff978dfeae (diff)
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: Signed-off-by: Cedric BAIL <>
Diffstat (limited to '')
1 files changed, 6 insertions, 0 deletions
diff --git a/src/lib/evas/canvas/evas_render.c b/src/lib/evas/canvas/evas_render.c
index 7d3491a444..6dab39ceed 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)
825 obj->pre_render_done = EINA_FALSE; 825 obj->pre_render_done = EINA_FALSE;
826 evas_object_change_reset(eo_obj); 826 evas_object_change_reset(eo_obj);
827 } 827 }
828 else if (!_evas_render_can_render(eo_obj, obj) &&
829 (!obj->is_active) && (!obj->render_pre) &&
830 (!obj->rect_del))
831 {
832 evas_object_change_reset(eo_obj);
833 }
828 if (!obj->changed) eo_data_unref(eo_obj, obj); 834 if (!obj->changed) eo_data_unref(eo_obj, obj);
829 return obj->changed ? EINA_TRUE : EINA_FALSE; 835 return obj->changed ? EINA_TRUE : EINA_FALSE;
830} 836}