forked from enlightenment/efl
edje - backport fix to opt that actually was a fix to existing bug
so it turns out a fix to an optimization i did was ALSO a fix to an existing bug that just didn't turn up as much until i added an optimization. this is that fix backported manually @fix
This commit is contained in:
parent
de3f8f330f
commit
52fb1c8d43
|
@ -189,18 +189,21 @@ _edje_object_message_signal_process_do(Eo *obj EINA_UNUSED, Edje *ed)
|
||||||
|
|
||||||
groups = ed->groups;
|
groups = ed->groups;
|
||||||
|
|
||||||
for (l = msgq; l; l = ln)
|
if (groups)
|
||||||
{
|
{
|
||||||
ln = l->next;
|
for (l = msgq; l; l = ln)
|
||||||
em = INLIST_CONTAINER(Edje_Message, l, inlist_main);
|
|
||||||
EINA_LIST_FOREACH(groups, lg, lookup_ed)
|
|
||||||
{
|
{
|
||||||
if (em->edje == lookup_ed)
|
ln = l->next;
|
||||||
|
em = INLIST_CONTAINER(Edje_Message, l, inlist_main);
|
||||||
|
EINA_LIST_FOREACH(groups, lg, lookup_ed)
|
||||||
{
|
{
|
||||||
msgq = eina_inlist_remove(msgq, &(em->inlist_main));
|
if (em->edje == lookup_ed)
|
||||||
tmp_msgq = eina_inlist_append(tmp_msgq, &(em->inlist_main));
|
{
|
||||||
em->in_tmp_msgq = EINA_TRUE;
|
msgq = eina_inlist_remove(msgq, &(em->inlist_main));
|
||||||
break;
|
tmp_msgq = eina_inlist_append(tmp_msgq, &(em->inlist_main));
|
||||||
|
em->in_tmp_msgq = EINA_TRUE;
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -213,12 +216,14 @@ again:
|
||||||
em = INLIST_CONTAINER(Edje_Message, l, inlist_edje);
|
em = INLIST_CONTAINER(Edje_Message, l, inlist_edje);
|
||||||
if (!em->in_tmp_msgq) continue;
|
if (!em->in_tmp_msgq) continue;
|
||||||
// so why this? any group edje is not the parent - skip this
|
// so why this? any group edje is not the parent - skip this
|
||||||
|
lookup_ed = NULL;
|
||||||
EINA_LIST_FOREACH(groups, lg, lookup_ed)
|
EINA_LIST_FOREACH(groups, lg, lookup_ed)
|
||||||
{
|
{
|
||||||
if (em->edje == lookup_ed) break;
|
if (em->edje == lookup_ed) break;
|
||||||
}
|
}
|
||||||
|
if (!lookup_ed) continue;
|
||||||
tmp_msgq = eina_inlist_remove(tmp_msgq, &(em->inlist_main));
|
tmp_msgq = eina_inlist_remove(tmp_msgq, &(em->inlist_main));
|
||||||
em->edje->messages = eina_inlist_remove(em->edje->messages, &(em->inlist_edje));
|
lookup_ed->messages = eina_inlist_remove(lookup_ed->messages, &(em->inlist_edje));
|
||||||
if (!lookup_ed->delete_me)
|
if (!lookup_ed->delete_me)
|
||||||
{
|
{
|
||||||
lookup_ed->processing_messages++;
|
lookup_ed->processing_messages++;
|
||||||
|
|
Loading…
Reference in New Issue