zmike pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=12467afd40bdae7cf33f4528888130190a25013d

commit 12467afd40bdae7cf33f4528888130190a25013d
Author: Mike Blumenkrantz <zm...@samsung.com>
Date:   Mon Mar 4 13:42:04 2019 -0500

    efl.layout.calc: remove list<> usage in FIXME for event
    
    Summary:
    make this an array since there is no need to use a list here anyway
    
    ref T7581
    
    Reviewers: cedric
    
    Reviewed By: cedric
    
    Subscribers: cedric, #reviewers, #committers
    
    Tags: #efl_api
    
    Maniphest Tasks: T7581
    
    Differential Revision: https://phab.enlightenment.org/D8058
---
 src/lib/edje/edje_calc.c        | 53 ++++++++++++++++++++++-------------------
 src/lib/edje/efl_layout_calc.eo |  3 +--
 2 files changed, 29 insertions(+), 27 deletions(-)

diff --git a/src/lib/edje/edje_calc.c b/src/lib/edje/edje_calc.c
index 18dd82d0cb..032ec030f2 100644
--- a/src/lib/edje/edje_calc.c
+++ b/src/lib/edje/edje_calc.c
@@ -3640,7 +3640,7 @@ _edje_map_prop_set(Evas_Map *map, const Edje_Calc_Params 
*pf,
 #define Rel2X 2
 #define Rel2Y 3
 static Eina_Bool
-_circular_dependency_find(Edje *ed, Edje_Real_Part *ep, Edje_Real_Part *cep, 
Eina_List **clist)
+_circular_dependency_find(Edje *ed, Edje_Real_Part *ep, Edje_Real_Part *cep, 
Eina_Array *arr)
 {
    Edje_Real_Part *rp = NULL;
 
@@ -3654,18 +3654,18 @@ _circular_dependency_find(Edje *ed, Edje_Real_Part *ep, 
Edje_Real_Part *cep, Ein
              if (cep->param1.description->rel1.id_x >= 0)
                {
                   rp = ed->table_parts[cep->param1.description->rel1.id_x];
-                  if (_circular_dependency_find(ed, ep, rp, clist))
+                  if (_circular_dependency_find(ed, ep, rp, arr))
                     {
-                       *clist = eina_list_prepend(*clist, rp->part->name);
+                       eina_array_push(arr, 
eina_stringshare_ref(rp->part->name));
                        return EINA_TRUE;
                     }
                }
              if (cep->param1.description->rel2.id_x >= 0)
                {
                   rp = ed->table_parts[cep->param1.description->rel2.id_x];
-                  if (_circular_dependency_find(ed, ep, rp, clist))
+                  if (_circular_dependency_find(ed, ep, rp, arr))
                     {
-                       *clist = eina_list_prepend(*clist, rp->part->name);
+                       eina_array_push(arr, 
eina_stringshare_ref(rp->part->name));
                        return EINA_TRUE;
                     }
                }
@@ -3676,18 +3676,18 @@ _circular_dependency_find(Edje *ed, Edje_Real_Part *ep, 
Edje_Real_Part *cep, Ein
              if (cep->param2->description->rel1.id_x >= 0)
                {
                   rp = ed->table_parts[cep->param2->description->rel1.id_x];
-                  if (_circular_dependency_find(ed, ep, rp, clist))
+                  if (_circular_dependency_find(ed, ep, rp, arr))
                     {
-                       *clist = eina_list_prepend(*clist, rp->part->name);
+                       eina_array_push(arr, 
eina_stringshare_ref(rp->part->name));
                        return EINA_TRUE;
                     }
                }
              if (cep->param2->description->rel2.id_x >= 0)
                {
                   rp = ed->table_parts[cep->param2->description->rel2.id_x];
-                  if (_circular_dependency_find(ed, ep, rp, clist))
+                  if (_circular_dependency_find(ed, ep, rp, arr))
                     {
-                       *clist = eina_list_prepend(*clist, rp->part->name);
+                       eina_array_push(arr, 
eina_stringshare_ref(rp->part->name));
                        return EINA_TRUE;
                     }
                }
@@ -3700,18 +3700,18 @@ _circular_dependency_find(Edje *ed, Edje_Real_Part *ep, 
Edje_Real_Part *cep, Ein
              if (cep->param1.description->rel1.id_y >= 0)
                {
                   rp = ed->table_parts[cep->param1.description->rel1.id_y];
-                  if (_circular_dependency_find(ed, ep, rp, clist))
+                  if (_circular_dependency_find(ed, ep, rp, arr))
                     {
-                       *clist = eina_list_prepend(*clist, rp->part->name);
+                       eina_array_push(arr, 
eina_stringshare_ref(rp->part->name));
                        return EINA_TRUE;
                     }
                }
              if (cep->param1.description->rel2.id_y >= 0)
                {
                   rp = ed->table_parts[cep->param1.description->rel2.id_y];
-                  if (_circular_dependency_find(ed, ep, rp, clist))
+                  if (_circular_dependency_find(ed, ep, rp, arr))
                     {
-                       *clist = eina_list_prepend(*clist, rp->part->name);
+                       eina_array_push(arr, 
eina_stringshare_ref(rp->part->name));
                        return EINA_TRUE;
                     }
                }
@@ -3721,18 +3721,18 @@ _circular_dependency_find(Edje *ed, Edje_Real_Part *ep, 
Edje_Real_Part *cep, Ein
              if (cep->param2->description->rel1.id_y >= 0)
                {
                   rp = ed->table_parts[cep->param2->description->rel1.id_y];
-                  if (_circular_dependency_find(ed, ep, rp, clist))
+                  if (_circular_dependency_find(ed, ep, rp, arr))
                     {
-                       *clist = eina_list_prepend(*clist, rp->part->name);
+                       eina_array_push(arr, 
eina_stringshare_ref(rp->part->name));
                        return EINA_TRUE;
                     }
                }
              if (cep->param2->description->rel2.id_y >= 0)
                {
                   rp = ed->table_parts[cep->param2->description->rel2.id_y];
-                  if (_circular_dependency_find(ed, ep, rp, clist))
+                  if (_circular_dependency_find(ed, ep, rp, arr))
                     {
-                       *clist = eina_list_prepend(*clist, rp->part->name);
+                       eina_array_push(arr, 
eina_stringshare_ref(rp->part->name));
                        return EINA_TRUE;
                     }
                }
@@ -3892,26 +3892,29 @@ _edje_part_recalc(Edje *ed, Edje_Real_Part *ep, int 
flags, Edje_Calc_Params *sta
             axes, ep->calculating,
             faxes, flags);
 
-        Eina_List *clist = NULL;
-        Eina_List *l = NULL;
-        char *part_name;
-        char depends_path[PATH_MAX] = "";
+        Eina_Array *part_array = eina_array_new(10);;
 
-        if (_circular_dependency_find(ed, ep, NULL, &clist))
+        if (_circular_dependency_find(ed, ep, NULL, part_array))
           {
+             Eina_Array_Iterator it;
+             unsigned int i;
+             char *part_name;
+             char depends_path[PATH_MAX] = "";
+
+             efl_event_callback_legacy_call(ed->obj, 
EFL_LAYOUT_EVENT_CIRCULAR_DEPENDENCY, part_array);
              strncat(depends_path, ep->part->name,
                      sizeof(depends_path) - strlen(depends_path) - 1);
-             EINA_LIST_FOREACH(clist, l, part_name)
+             EINA_ARRAY_ITER_NEXT(part_array, i, part_name, it)
                {
                   strncat(depends_path, " -> ",
                           sizeof(depends_path) - strlen(depends_path) - 1);
                   strncat(depends_path, part_name,
                           sizeof(depends_path) - strlen(depends_path) - 1);
+                  eina_stringshare_del(part_name);
                }
-             efl_event_callback_legacy_call(ed->obj, 
EFL_LAYOUT_EVENT_CIRCULAR_DEPENDENCY, clist);
              ERR("Circular dependency in the group '%s' : %s",
                  ed->group, depends_path);
-             eina_list_free(clist);
+             eina_array_free(part_array);
           }
 #endif
         return;
diff --git a/src/lib/edje/efl_layout_calc.eo b/src/lib/edje/efl_layout_calc.eo
index ab43fbbe1f..cf4f45ebde 100644
--- a/src/lib/edje/efl_layout_calc.eo
+++ b/src/lib/edje/efl_layout_calc.eo
@@ -109,8 +109,7 @@ interface @beta Efl.Layout.Calc
    }
    events {
       recalc: void; [[The layout was recalculated.]]
-      /* FIXME: The actual type is list<string> but the C# bindings do not 
support that yet */
-      circular,dependency: void; [[A circular dependency between parts of the
+      circular,dependency: const(array<string>); [[A circular dependency 
between parts of the
          object was found.]]
    }
 }

-- 


Reply via email to