From 1ac86bb878f649b6e35df162c5395c840b46cc33 Mon Sep 17 00:00:00 2001 From: "Carsten Haitzler (Rasterman)" Date: Thu, 17 Nov 2016 16:30:23 +0900 Subject: [PATCH] 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 7446c3637b..f46e2c8995 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);