summaryrefslogtreecommitdiff
path: root/gtk/updateiconcache.c
diff options
context:
space:
mode:
Diffstat (limited to 'gtk/updateiconcache.c')
-rw-r--r--gtk/updateiconcache.c15
1 files changed, 12 insertions, 3 deletions
diff --git a/gtk/updateiconcache.c b/gtk/updateiconcache.c
index e6957cff68..4bf31ec656 100644
--- a/gtk/updateiconcache.c
+++ b/gtk/updateiconcache.c
@@ -81,10 +81,19 @@ typedef struct
static gboolean
foreach_remove_func (gpointer key, gpointer value, gpointer user_data)
{
+ Image *image = (Image *)value;
GHashTable *files = user_data;
GList *list;
- gboolean free_key = FALSE;;
-
+ gboolean free_key = FALSE;
+
+ if (image->flags == HAS_ICON_FILE)
+ {
+ g_free (key);
+ g_free (image);
+
+ return TRUE;
+ }
+
list = g_hash_table_lookup (files, key);
if (list)
free_key = TRUE;
@@ -171,7 +180,7 @@ scan_directory (const gchar *base_path,
image = g_hash_table_lookup (dir_hash, basename);
if (image)
image->flags |= flags;
- else if ((flags & HAS_ICON_FILE) != HAS_ICON_FILE)
+ else
{
if (!dir_added)
{