From bcf7d7e972d1fd814fd8a340edc427a6cc9ee7b5 Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Tue, 2 Jan 2007 04:19:28 +0000 Subject: [PATCH] Waste less time with non-directories. (#391725, Chris Wilson) 2007-01-01 Matthias Clasen * gtk/gtkicontheme.c (load_themes): Waste less time with non-directories. (#391725, Chris Wilson) svn path=/trunk/; revision=17005 --- ChangeLog | 5 +++++ gtk/gtkicontheme.c | 17 +++++++++-------- 2 files changed, 14 insertions(+), 8 deletions(-) diff --git a/ChangeLog b/ChangeLog index ff0cd103a0..cf847175f2 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2007-01-01 Matthias Clasen + + * gtk/gtkicontheme.c (load_themes): Waste less time + with non-directories. (#391725, Chris Wilson) + 2007-01-01 Matthias Clasen * gtk/gtkcellrendererprogress.c: Implement activity mode diff --git a/gtk/gtkicontheme.c b/gtk/gtkicontheme.c index e986b40061..6cb06aeb7b 100644 --- a/gtk/gtkicontheme.c +++ b/gtk/gtkicontheme.c @@ -1047,20 +1047,21 @@ load_themes (GtkIconTheme *icon_theme) dir = icon_theme->priv->search_path[base]; dir_mtime = g_slice_new (IconThemeDirMtime); - dir_mtime->cache = _gtk_icon_cache_new_for_path (dir); - dir_mtime->dir = g_strdup (dir); - if (g_stat (dir, &stat_buf) == 0 && S_ISDIR (stat_buf.st_mode)) - dir_mtime->mtime = stat_buf.st_mtime; - else - dir_mtime->mtime = 0; - priv->dir_mtimes = g_list_append (priv->dir_mtimes, dir_mtime); + dir_mtime->dir = g_strdup (dir); + dir_mtime->mtime = 0; + dir_mtime->cache = NULL; + + if (g_stat (dir, &stat_buf) != 0 || !S_ISDIR (stat_buf.st_mode)) + continue; + dir_mtime->mtime = stat_buf.st_mtime; + + dir_mtime->cache = _gtk_icon_cache_new_for_path (dir); if (dir_mtime->cache != NULL) continue; gdir = g_dir_open (dir, 0, NULL); - if (gdir == NULL) continue;