kimcinoo pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=ca225e7bf3437c7bbe52f55847e719b7468ae7c5
commit ca225e7bf3437c7bbe52f55847e719b7468ae7c5 Author: Shinwoo Kim <cinoo....@samsung.com> Date: Thu Apr 14 21:55:14 2016 +0900 edje: fix invalid calculation to get a circular dependency --- src/lib/edje/edje_calc.c | 42 ++++++++++++++++-------------------------- 1 file changed, 16 insertions(+), 26 deletions(-) diff --git a/src/lib/edje/edje_calc.c b/src/lib/edje/edje_calc.c index 3af82de..0a8a8a2 100644 --- a/src/lib/edje/edje_calc.c +++ b/src/lib/edje/edje_calc.c @@ -3660,18 +3660,15 @@ _circular_dependency_find(Edje *ed, Edje_Real_Part *ep, Edje_Real_Part *cep, Ein { Edje_Real_Part *rp = NULL; - if (cep && !strcmp(ep->part->name, cep->part->name)) - { - return EINA_TRUE; - } + if (cep == ep) return EINA_TRUE; + if (!cep) cep = ep; - if ((ep->calculating & FLAG_X)) + if ((cep->calculating & FLAG_X)) { - if (ep->param1.description) + if (cep->param1.description) { - if (ep->param1.description->rel1.id_x >= 0) + if (cep->param1.description->rel1.id_x >= 0) { - if (!cep) cep = ep; rp = ed->table_parts[cep->param1.description->rel1.id_x]; if (_circular_dependency_find(ed, ep, rp, clist)) { @@ -3679,9 +3676,8 @@ _circular_dependency_find(Edje *ed, Edje_Real_Part *ep, Edje_Real_Part *cep, Ein return EINA_TRUE; } } - if (ep->param1.description->rel2.id_x >= 0) + if (cep->param1.description->rel2.id_x >= 0) { - if (!cep) cep = ep; rp = ed->table_parts[cep->param1.description->rel2.id_x]; if (_circular_dependency_find(ed, ep, rp, clist)) { @@ -3691,11 +3687,10 @@ _circular_dependency_find(Edje *ed, Edje_Real_Part *ep, Edje_Real_Part *cep, Ein } } - if (ep->param2) + if (cep->param2) { - if (ep->param2->description->rel1.id_x >= 0) + if (cep->param2->description->rel1.id_x >= 0) { - if (!cep) cep = ep; rp = ed->table_parts[cep->param2->description->rel1.id_x]; if (_circular_dependency_find(ed, ep, rp, clist)) { @@ -3703,9 +3698,8 @@ _circular_dependency_find(Edje *ed, Edje_Real_Part *ep, Edje_Real_Part *cep, Ein return EINA_TRUE; } } - if (ep->param2->description->rel2.id_x >= 0) + if (cep->param2->description->rel2.id_x >= 0) { - if (!cep) cep = ep; rp = ed->table_parts[cep->param2->description->rel2.id_x]; if (_circular_dependency_find(ed, ep, rp, clist)) { @@ -3715,13 +3709,12 @@ _circular_dependency_find(Edje *ed, Edje_Real_Part *ep, Edje_Real_Part *cep, Ein } } } - if ((ep->calculating & FLAG_Y)) + if ((cep->calculating & FLAG_Y)) { - if (ep->param1.description) + if (cep->param1.description) { - if (ep->param1.description->rel1.id_y >= 0) + if (cep->param1.description->rel1.id_y >= 0) { - if (!cep) cep = ep; rp = ed->table_parts[cep->param1.description->rel1.id_y]; if (_circular_dependency_find(ed, ep, rp, clist)) { @@ -3729,9 +3722,8 @@ _circular_dependency_find(Edje *ed, Edje_Real_Part *ep, Edje_Real_Part *cep, Ein return EINA_TRUE; } } - if (ep->param1.description->rel2.id_y >= 0) + if (cep->param1.description->rel2.id_y >= 0) { - if (!cep) cep = ep; rp = ed->table_parts[cep->param1.description->rel2.id_y]; if (_circular_dependency_find(ed, ep, rp, clist)) { @@ -3740,11 +3732,10 @@ _circular_dependency_find(Edje *ed, Edje_Real_Part *ep, Edje_Real_Part *cep, Ein } } } - if (ep->param2) + if (cep->param2) { - if (ep->param2->description->rel1.id_y >= 0) + if (cep->param2->description->rel1.id_y >= 0) { - if (!cep) cep = ep; rp = ed->table_parts[cep->param2->description->rel1.id_y]; if (_circular_dependency_find(ed, ep, rp, clist)) { @@ -3752,9 +3743,8 @@ _circular_dependency_find(Edje *ed, Edje_Real_Part *ep, Edje_Real_Part *cep, Ein return EINA_TRUE; } } - if (ep->param2->description->rel2.id_y >= 0) + if (cep->param2->description->rel2.id_y >= 0) { - if (!cep) cep = ep; rp = ed->table_parts[cep->param2->description->rel2.id_y]; if (_circular_dependency_find(ed, ep, rp, clist)) { --