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; } --
