forked from enlightenment/efl
edje_pick: don't copy dependencies group if they in the import list
If a dependence group in the import list - don't copy it as dependence, it make group duplicate and make a recurcive load. @fix Fixes T4313
This commit is contained in:
parent
06f4a790e6
commit
164d81f124
|
@ -564,7 +564,7 @@ _edje_pick_output_prepare(Edje_File *o, Edje_File *edf, char *name)
|
||||||
}
|
}
|
||||||
|
|
||||||
static Eina_List *
|
static Eina_List *
|
||||||
_edje_pick_header_dependencies_check(Edje_File *out_file, Edje_File *edf, Edje_Part_Collection_Directory_Entry *ce, int *current_id)
|
_edje_pick_header_dependencies_check(Edje_File *out_file, Edje_File *edf, Eina_List *groups, Edje_Part_Collection_Directory_Entry *ce, int *current_id)
|
||||||
{
|
{
|
||||||
char buf[1024];
|
char buf[1024];
|
||||||
Edje_Part_Collection *edc;
|
Edje_Part_Collection *edc;
|
||||||
|
@ -582,11 +582,12 @@ _edje_pick_header_dependencies_check(Edje_File *out_file, Edje_File *edf, Edje_P
|
||||||
if (!edc)
|
if (!edc)
|
||||||
{
|
{
|
||||||
EINA_LOG_ERR("Failed to read group <%s> id <%d>\n", ce->entry, ce->id);
|
EINA_LOG_ERR("Failed to read group <%s> id <%d>\n", ce->entry, ce->id);
|
||||||
return dep_list;
|
goto exit;
|
||||||
}
|
}
|
||||||
#define GROUP_CHECK_AND_ADD(NAME) \
|
#define GROUP_CHECK_AND_ADD(NAME) \
|
||||||
if (NAME) \
|
if (NAME) \
|
||||||
{ \
|
{ \
|
||||||
|
if (eina_list_search_unsorted(groups, (void *)strcmp, NAME)) goto exit; \
|
||||||
ce_cor = eina_hash_find(edf->collection, NAME); \
|
ce_cor = eina_hash_find(edf->collection, NAME); \
|
||||||
if ((ce_cor) && (!eina_hash_find(out_file->collection, NAME))) \
|
if ((ce_cor) && (!eina_hash_find(out_file->collection, NAME))) \
|
||||||
{ \
|
{ \
|
||||||
|
@ -617,6 +618,7 @@ _edje_pick_header_dependencies_check(Edje_File *out_file, Edje_File *edf, Edje_P
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
exit:
|
||||||
edje_cache_emp_free(ce);
|
edje_cache_emp_free(ce);
|
||||||
return dep_list;
|
return dep_list;
|
||||||
#undef GROUP_CHECK_AND_ADD
|
#undef GROUP_CHECK_AND_ADD
|
||||||
|
@ -734,7 +736,7 @@ _edje_pick_header_make(Edje_File *out_file , Edje_File *edf, Eina_List *ifs)
|
||||||
|
|
||||||
eina_hash_direct_add(out_file->collection,ce_out->entry,
|
eina_hash_direct_add(out_file->collection,ce_out->entry,
|
||||||
ce_out);
|
ce_out);
|
||||||
dep_list = _edje_pick_header_dependencies_check(out_file, edf, ce, ¤t_group_id);
|
dep_list = _edje_pick_header_dependencies_check(out_file, edf, context.current_file->groups, ce, ¤t_group_id);
|
||||||
if (!deps) deps = dep_list;
|
if (!deps) deps = dep_list;
|
||||||
else deps = eina_list_merge(deps, dep_list);
|
else deps = eina_list_merge(deps, dep_list);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue