raster pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=1ac86bb878f649b6e35df162c5395c840b46cc33
commit 1ac86bb878f649b6e35df162c5395c840b46cc33 Author: Carsten Haitzler (Rasterman) <[email protected]> Date: Thu Nov 17 16:30:23 2016 +0900 eo - fix ever growing callback list by actually flagging waiting dels i found a massive slowdown that over time ended up with 10000's of cb's in objects like the ecore loop object. this fixes that by ACTUALLY flagging event deletions waiting to be true rather than false. --- src/lib/eo/eo_base_class.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/lib/eo/eo_base_class.c b/src/lib/eo/eo_base_class.c index 7446c36..f46e2c8 100644 --- a/src/lib/eo/eo_base_class.c +++ b/src/lib/eo/eo_base_class.c @@ -1115,7 +1115,7 @@ _efl_object_event_callback_del(Eo *obj, Efl_Object_Data *pd, (*cb)->delete_me = EINA_TRUE; if (pd->walking_list > 0) - pd->deletions_waiting = EINA_FALSE; + pd->deletions_waiting = EINA_TRUE; else _eo_callback_remove(pd, cb); @@ -1189,7 +1189,7 @@ _efl_object_event_callback_array_del(Eo *obj, Efl_Object_Data *pd, { (*cb)->delete_me = EINA_TRUE; if (pd->walking_list > 0) - pd->deletions_waiting = EINA_FALSE; + pd->deletions_waiting = EINA_TRUE; else _eo_callback_remove(pd, cb); --
