summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthias Clasen <mclasen@redhat.com>2021-03-13 18:07:01 +0000
committerMatthias Clasen <mclasen@redhat.com>2021-03-13 18:07:01 +0000
commit5edac966e42d1d454e247d452cac28d6e01269bd (patch)
tree8457db120af6fdc654a8b607d1b9b3280edf2ccd
parentc7df3b9e9790012e6c5fbad6a4f4519bcf75561f (diff)
parent850768270f86f060ad317933b629593f6fdd08be (diff)
downloadgtk+-5edac966e42d1d454e247d452cac28d6e01269bd.tar.gz
Merge branch 'ebassi/reproducible-icon-cache' into 'gtk-3-24'
Reproducible icon cache See merge request GNOME/gtk!3293
-rw-r--r--gtk/updateiconcache.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/gtk/updateiconcache.c b/gtk/updateiconcache.c
index b48eaca804..6703c8b9e8 100644
--- a/gtk/updateiconcache.c
+++ b/gtk/updateiconcache.c
@@ -600,6 +600,7 @@ scan_directory (const gchar *base_path,
{
GHashTable *dir_hash;
GDir *dir;
+ GList *list = NULL, *iterator = NULL;
const gchar *name;
gchar *dir_path;
gboolean dir_added = FALSE;
@@ -617,6 +618,13 @@ scan_directory (const gchar *base_path,
while ((name = g_dir_read_name (dir)))
{
+ list = g_list_prepend (list, g_strdup (name));
+ }
+ list = g_list_sort (list, (GCompareFunc) strcmp);
+ for (iterator = list; iterator; iterator = iterator->next)
+ {
+ name = iterator->data;
+
gchar *path;
gboolean retval;
int flags = 0;
@@ -695,6 +703,7 @@ scan_directory (const gchar *base_path,
g_free (path);
}
+ g_list_free_full (list, g_free);
g_dir_close (dir);
/* Move dir into the big file hash */