forked from enlightenment/efl
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.bail@samsung.com>
This commit is contained in:
parent
846bbafbfb
commit
067cbf6df8
|
@ -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;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue