}
void
+efreet_cache_desktop_close(void)
+{
+ IF_RELEASE(util_cache_names_key);
+ IF_RELEASE(util_cache_hash_key);
+
+ if ((desktop_cache) && (desktop_cache != NON_EXISTING))
+ {
+ Efreet_Old_Cache *d = NEW(Efreet_Old_Cache, 1);
+ if (d)
+ {
+ d->hash = desktops;
+ d->ef = desktop_cache;
+ old_desktop_caches = eina_list_append(old_desktop_caches, d);
+ }
+
+ desktops = eina_hash_string_superfast_new(NULL);
+ }
+ desktop_cache = NULL;
+
+ efreet_cache_array_string_free(util_cache_names);
+ util_cache_names = NULL;
+
+ if (util_cache_hash)
+ {
+ eina_hash_free(util_cache_hash->hash);
+ free(util_cache_hash);
+ util_cache_hash = NULL;
+ }
+
+ util_cache = efreet_cache_close(util_cache);
+
+ IF_RELEASE(desktop_cache_file);
+ IF_RELEASE(util_cache_file);
+}
+
+void
efreet_cache_icon_update(void)
{
if (!efreet_cache_update) return;
ev = NEW(Efreet_Event_Cache_Update, 1);
if (!ev) goto error;
- IF_RELEASE(util_cache_names_key);
- IF_RELEASE(util_cache_hash_key);
-
- if ((desktop_cache) && (desktop_cache != NON_EXISTING))
- {
- d = NEW(Efreet_Old_Cache, 1);
- if (!d) goto error;
- d->hash = desktops;
- d->ef = desktop_cache;
- old_desktop_caches = eina_list_append(old_desktop_caches, d);
-
- desktops = eina_hash_string_superfast_new(NULL);
- }
- desktop_cache = NULL;
-
- efreet_cache_array_string_free(util_cache_names);
- util_cache_names = NULL;
-
- if (util_cache_hash)
- {
- eina_hash_free(util_cache_hash->hash);
- free(util_cache_hash);
- util_cache_hash = NULL;
- }
-
- util_cache = efreet_cache_close(util_cache);
+ efreet_cache_desktop_close();
ecore_event_add(EFREET_EVENT_DESKTOP_CACHE_UPDATE, ev, desktop_cache_update_free, d);
}