someone somewhere along the way broke evas_render_method_list(). FIX!

SVN revision: 69634
This commit is contained in:
Carsten Haitzler 2012-03-26 10:56:55 +00:00
parent 09c584418b
commit 6c4d8abb01
2 changed files with 44 additions and 3 deletions

View File

@ -509,7 +509,9 @@ evas_render_method_list(void)
EAPI void
evas_render_method_list_free(Eina_List *list)
{
eina_list_free(list);
const char *s;
EINA_LIST_FREE(list, s) eina_stringshare_del(s);
}
EAPI Eina_Bool

View File

@ -293,12 +293,51 @@ Eina_List *
evas_module_engine_list(void)
{
Evas_Module *em;
Eina_List *r = NULL;
Eina_List *r = NULL, *l, *ll;
Eina_Array_Iterator iterator;
Eina_Iterator *it, *it2;
unsigned int i;
const char *s, *s2;
char buf[4096];
EINA_LIST_FOREACH(evas_module_paths, l, s)
{
snprintf(buf, sizeof(buf), "%s/engines", s);
it = eina_file_direct_ls(buf);
if (it)
{
Eina_File_Direct_Info *fi;
EINA_ITERATOR_FOREACH(it, fi)
{
const char *fname = fi->path + fi->name_start;
snprintf(buf, sizeof(buf), "%s/engines/%s/%s",
s, fname, MODULE_ARCH);
it2 = eina_file_ls(buf);
if (it2)
{
EINA_LIST_FOREACH(r, ll, s2)
{
if (!strcmp(fname, s2)) break;
}
if (!ll)
r = eina_list_append(r, eina_stringshare_add(fname));
eina_iterator_free(it2);
}
}
eina_iterator_free(it);
}
}
EINA_ARRAY_ITER_NEXT(evas_engines, i, em, iterator)
r = eina_list_append(r, em->definition->name);
{
EINA_LIST_FOREACH(r, ll, s2)
{
if (!strcmp(em->definition->name, s2)) break;
}
if (!ll)
r = eina_list_append(r, eina_stringshare_add(em->definition->name));
}
return r;
}