One func to free edd's

SVN revision: 55138
This commit is contained in:
Sebastian Dransfeld 2010-12-02 08:32:59 +00:00
parent f372387cde
commit 0a3b631073
1 changed files with 21 additions and 33 deletions

View File

@ -69,10 +69,9 @@ static int desktop_cache_exe_lock = -1;
static Eina_List *old_desktop_caches = NULL;
#ifdef ICON_CACHE
static void efreet_icon_edd_shutdown(void);
static Efreet_Cache_Theme *_efreet_cache_free(Efreet_Cache_Theme *cache);
#endif
static void efreet_desktop_edd_shutdown(void);
static void efreet_cache_edd_shutdown(void);
static Eina_Bool cache_exe_cb(void *data, int type, void *event);
static void cache_update_cb(void *data, Ecore_File_Monitor *em,
@ -129,10 +128,7 @@ error:
cache_exe_handler = NULL;
if (cache_monitor) ecore_file_monitor_del(cache_monitor);
cache_monitor = NULL;
#ifdef ICON_CACHE
efreet_icon_edd_shutdown();
#endif
efreet_desktop_edd_shutdown();
efreet_cache_edd_shutdown();
return 0;
}
@ -162,11 +158,7 @@ efreet_cache_shutdown(void)
if (cache_monitor) ecore_file_monitor_del(cache_monitor);
cache_monitor = NULL;
#ifdef ICON_CACHE
efreet_icon_edd_shutdown();
#endif
efreet_desktop_edd_shutdown();
efreet_cache_edd_shutdown();
if (desktop_cache_job)
{
ecore_job_del(desktop_cache_job);
@ -260,6 +252,24 @@ efreet_desktop_cache_dirs(void)
return desktop_cache_dirs;
}
#define EDD_SHUTDOWN(Edd) \
if (Edd) eet_data_descriptor_free(Edd); \
Edd = NULL;
static void
efreet_cache_edd_shutdown(void)
{
EDD_SHUTDOWN(desktop_edd);
#ifdef ICON_CACHE
EDD_SHUTDOWN(cache_fallback_edd);
EDD_SHUTDOWN(cache_theme_edd);
EDD_SHUTDOWN(directory_edd);
EDD_SHUTDOWN(icon_element_pointer_edd);
EDD_SHUTDOWN(icon_element_edd);
EDD_SHUTDOWN(icon_edd);
#endif
}
#ifdef ICON_CACHE
#define EFREET_POINTER_TYPE(Edd_Dest, Edd_Source, Type) \
@ -424,21 +434,6 @@ efreet_icon_fallback_edd(Eina_Bool include_dirs)
return cache_fallback_edd;
}
#define EDD_SHUTDOWN(Edd) \
if (Edd) eet_data_descriptor_free(Edd); \
Edd = NULL;
static void
efreet_icon_edd_shutdown(void)
{
EDD_SHUTDOWN(cache_fallback_edd);
EDD_SHUTDOWN(cache_theme_edd);
EDD_SHUTDOWN(directory_edd);
EDD_SHUTDOWN(icon_element_pointer_edd);
EDD_SHUTDOWN(icon_element_edd);
EDD_SHUTDOWN(icon_edd);
}
#endif
/*
@ -481,13 +476,6 @@ efreet_desktop_edd(void)
return desktop_edd;
}
static void
efreet_desktop_edd_shutdown(void)
{
if (desktop_edd) eet_data_descriptor_free(desktop_edd);
desktop_edd = NULL;
}
#ifdef ICON_CACHE
/*
* Needs EAPI because of helper binaries