e17/evry-files: fix segv when one uses parent directories command while current dir is still scanning

SVN revision: 62522
This commit is contained in:
Hannes Janetzek 2011-08-17 00:21:17 +00:00
parent 6aa6faed9a
commit 0ddcff0e5c
1 changed files with 8 additions and 14 deletions

View File

@ -57,7 +57,7 @@ struct _Plugin
Ecore_Thread *thread;
Ecore_File_Monitor *dir_mon;
int wait_finish;
int waiting_to_finish;
};
struct _Data
@ -280,8 +280,8 @@ _scan_cancel_func(void *data, Ecore_Thread *thread __UNUSED__)
Plugin *p = d->plugin;
Evry_Item_File *file;
EINA_LIST_FREE(p->files, file)
EVRY_ITEM_FREE(file);
/* EINA_LIST_FREE(p->files, file)
* EVRY_ITEM_FREE(file); */
EINA_LIST_FREE(d->files, file)
{
@ -292,7 +292,7 @@ _scan_cancel_func(void *data, Ecore_Thread *thread __UNUSED__)
p->thread = NULL;
if (p->wait_finish)
if (p->waiting_to_finish)
E_FREE(p);
free(d->directory);
@ -645,15 +645,11 @@ _finish(Evry_Plugin *plugin)
IF_RELEASE(p->directory);
if (p->thread)
{
ecore_thread_cancel(p->thread);
p->wait_finish = 1;
p->thread = NULL;
}
p->waiting_to_finish = 1;
_free_files(p);
if (!p->wait_finish)
if (!p->waiting_to_finish)
E_FREE(p);
}
@ -869,13 +865,11 @@ _recentf_cancel_func(void *data)
Evry_Item_File *file;
EINA_LIST_FREE(d->files, file)
{
EVRY_ITEM_FREE(file);
}
EVRY_ITEM_FREE(file);
E_FREE(d);
if (p->wait_finish)
if (p->waiting_to_finish)
E_FREE(p);
}