Updating branch refs/heads/master to 2165c4239697a905fdd3e46037baa977c05e4fb1 (commit) from 0093f278c4dfe45e404ae502aa0e3c817f7a38fc (commit)
commit 2165c4239697a905fdd3e46037baa977c05e4fb1 Author: Nick Schermer <n...@xfce.org> Date: Fri Dec 7 23:54:43 2012 +0100 Work with an array to store the strings. Called a lot, so array is a bit more efficient than. tumblerd/tumbler-registry.c | 13 ++++++++----- 1 files changed, 8 insertions(+), 5 deletions(-) diff --git a/tumblerd/tumbler-registry.c b/tumblerd/tumbler-registry.c index 5f8c8ab..c75ca61 100644 --- a/tumblerd/tumbler-registry.c +++ b/tumblerd/tumbler-registry.c @@ -469,7 +469,7 @@ tumbler_registry_update_supported (TumblerRegistry *registry) { GHashTableIter iter; GHashTable *unique_pairs; - GSList *used_strings = NULL; + GPtrArray *used_strings; GList *thumbnailers; GList *lp; const gchar **pair; @@ -507,6 +507,9 @@ tumbler_registry_update_supported (TumblerRegistry *registry) (GDestroyNotify) g_free, (GDestroyNotify) free_pair); + /* prepare array */ + used_strings = g_ptr_array_sized_new (150); + /* iterate over all of them */ for (lp = thumbnailers; lp != NULL; lp = lp->next) { @@ -523,7 +526,7 @@ tumbler_registry_update_supported (TumblerRegistry *registry) ++n) { /* remember the MIME type so that we can later reuse it without copying */ - used_strings = g_slist_prepend (used_strings, mime_types[n]); + g_ptr_array_add (used_strings, mime_types[n]); for (u = 0; uri_schemes[u] != NULL; ++u) { @@ -531,7 +534,7 @@ tumbler_registry_update_supported (TumblerRegistry *registry) * without copying. Only remember it once (n==0) to avoid segmentation * faults when freeing the list */ if (n == 0) - used_strings = g_slist_prepend (used_strings, uri_schemes[u]); + g_ptr_array_add (used_strings, uri_schemes[u]); /* allocate a pair with the current URI scheme and MIME type */ pair = g_slice_alloc (2 * sizeof (const gchar *)); @@ -593,8 +596,8 @@ tumbler_registry_update_supported (TumblerRegistry *registry) g_hash_table_unref (unique_pairs); /* free all strings we used but haven't freed yet */ - g_slist_foreach (used_strings, (GFunc) g_free, NULL); - g_slist_free (used_strings); + g_ptr_array_foreach (used_strings, (GFunc) g_free, NULL); + g_ptr_array_free (used_strings, TRUE); } _______________________________________________ Xfce4-commits mailing list Xfce4-commits@xfce.org https://mail.xfce.org/mailman/listinfo/xfce4-commits