forked from enlightenment/efl
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.
This commit is contained in:
parent
f504950597
commit
1ac86bb878
|
@ -1115,7 +1115,7 @@ _efl_object_event_callback_del(Eo *obj, Efl_Object_Data *pd,
|
||||||
|
|
||||||
(*cb)->delete_me = EINA_TRUE;
|
(*cb)->delete_me = EINA_TRUE;
|
||||||
if (pd->walking_list > 0)
|
if (pd->walking_list > 0)
|
||||||
pd->deletions_waiting = EINA_FALSE;
|
pd->deletions_waiting = EINA_TRUE;
|
||||||
else
|
else
|
||||||
_eo_callback_remove(pd, cb);
|
_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;
|
(*cb)->delete_me = EINA_TRUE;
|
||||||
if (pd->walking_list > 0)
|
if (pd->walking_list > 0)
|
||||||
pd->deletions_waiting = EINA_FALSE;
|
pd->deletions_waiting = EINA_TRUE;
|
||||||
else
|
else
|
||||||
_eo_callback_remove(pd, cb);
|
_eo_callback_remove(pd, cb);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue