From 7092ba1fc606dabbfe8aec46bbae6fcfa232d916 Mon Sep 17 00:00:00 2001 From: Hannes Janetzek Date: Tue, 20 Apr 2010 07:57:09 +0000 Subject: [PATCH] 'everything' files: fix scan thread SVN revision: 48158 --- src/modules/everything-files/e_mod_main.c | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/src/modules/everything-files/e_mod_main.c b/src/modules/everything-files/e_mod_main.c index 423a3df02..c65b18ec6 100644 --- a/src/modules/everything-files/e_mod_main.c +++ b/src/modules/everything-files/e_mod_main.c @@ -113,9 +113,12 @@ _scan_func(void *data) if (!d->list) d->list = ecore_file_ls(p->directory); - - EINA_LIST_FREE(d->list, filename) + + while(d->list) { + filename = d->list->data; + d->list = eina_list_remove_list(d->list, d->list); + if (filename[0] == '.') { free(filename); @@ -148,7 +151,7 @@ _scan_func(void *data) d->files = eina_list_append(d->files, file); - if (cnt > MAX_ITEMS) break; + if (cnt++ > MAX_ITEMS) break; } } @@ -213,7 +216,8 @@ _scan_end_func(void *data) Eina_List *l; p->thread = NULL; - + printf("scan end\n"); + EINA_LIST_FREE(d->files, item) { ITEM_FILE(file, item); @@ -257,7 +261,7 @@ _scan_end_func(void *data) * cnt += _append_file(p, file); * item->priority = cnt; */ } - if (d->files) + if (d->list) p->thread = ecore_thread_run(_scan_func, _scan_end_func, _scan_cancel_func, d); else E_FREE(d);