From 8d0cebc63231a12c507c9e75a2f0b1bd44d07531 Mon Sep 17 00:00:00 2001 From: Sebastian Dransfeld Date: Sat, 5 Feb 2011 20:03:18 +0000 Subject: [PATCH] Fix segv, clear mem cache on eet file close Patch by Hannes Janetzek SVN revision: 56735 --- legacy/efreet/ChangeLog | 4 ++++ legacy/efreet/src/lib/efreet_utils.c | 14 ++++++++++++++ 2 files changed, 18 insertions(+) diff --git a/legacy/efreet/ChangeLog b/legacy/efreet/ChangeLog index 065e02e390..cc61e00a6e 100644 --- a/legacy/efreet/ChangeLog +++ b/legacy/efreet/ChangeLog @@ -38,3 +38,7 @@ in efreet_init() * Set EFREET_MODULE_LOG_DOM variable to -1 after unregister * Remove duplicate logging macros + +2011-02-05 Hannes Janetzek + + * Clear mem cache when closing eet file diff --git a/legacy/efreet/src/lib/efreet_utils.c b/legacy/efreet/src/lib/efreet_utils.c index bb4b9606bc..deb0abbc27 100644 --- a/legacy/efreet/src/lib/efreet_utils.c +++ b/legacy/efreet/src/lib/efreet_utils.c @@ -671,6 +671,20 @@ efreet_util_cache_names(Eet_Data_Descriptor *edd, const char *key) void efreet_util_desktop_cache_reload(void) { + if (cache_names) + { + IF_RELEASE(cache_names_key); + efreet_cache_array_string_free(cache_names); + cache_names = NULL; + } + if (cache_hash) + { + IF_RELEASE(cache_hash_key); + eina_hash_free(cache_hash->hash); + free(cache_hash); + cache_hash = NULL; + } + cache = efreet_cache_close(cache); }