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);
 

-- 


Reply via email to