rimmed pushed a commit to branch master.

http://git.enlightenment.org/tools/eflete.git/commit/?id=c4345961dc655cc7fa70e766518588fb055c937f

commit c4345961dc655cc7fa70e766518588fb055c937f
Author: Vyacheslav Reutskiy <[email protected]>
Date:   Fri Jan 27 10:01:41 2017 +0200

    resource manager: the groups list MUST be sorted
    
    The all code expect the sorted groups list. If this list is not sorted
    we have many side effects in other modules.
    
    @fix
    
    Change-Id: Iceada5e9f5b49f17874f89bea6c302b3c58ba4d9
---
 src/bin/resource_manager/resource_manager_load.c | 11 ++++++++++-
 1 file changed, 10 insertions(+), 1 deletion(-)

diff --git a/src/bin/resource_manager/resource_manager_load.c 
b/src/bin/resource_manager/resource_manager_load.c
index 5bedd93..b624dc5 100644
--- a/src/bin/resource_manager/resource_manager_load.c
+++ b/src/bin/resource_manager/resource_manager_load.c
@@ -625,6 +625,15 @@ _group_load(Project *pro, Group2 *group)
    resource_group_edit_object_unload(group);
 }
 
+static int
+groupcmp(const void *d1, const void *d2)
+{
+   Group2 *g1 = (Group2 *)d1;
+   Group2 *g2 = (Group2 *)d2;
+
+   return strcmp(g1->common.name, g2->common.name);
+}
+
 Group2 *
 _group_add(Project *pro, Eina_Stringshare *group_name)
 {
@@ -633,7 +642,7 @@ _group_add(Project *pro, Eina_Stringshare *group_name)
    res = mem_calloc(1, sizeof(Group2));
    res->common.type = RESOURCE2_TYPE_GROUP;
    res->common.name = eina_stringshare_add(group_name);
-   pro->RM.groups = eina_list_append(pro->RM.groups, res);
+   pro->RM.groups = eina_list_sorted_insert(pro->RM.groups, groupcmp,  res);
 
    return res;
 }

-- 


Reply via email to