Use hash iterators
authorMatthias Clasen <matthiasc@src.gnome.org>
Sat, 15 Dec 2007 04:39:26 +0000 (04:39 +0000)
committerMatthias Clasen <matthiasc@src.gnome.org>
Sat, 15 Dec 2007 04:39:26 +0000 (04:39 +0000)
svn path=/trunk/; revision=6132

gio/ChangeLog
gio/gcontenttype.c
gio/gdesktopappinfo.c

index d3cba2e..33bd99a 100644 (file)
@@ -1,3 +1,8 @@
+2007-12-14  Matthias Clasen  <mclasen@redhat.com>
+
+       * gcontenttype.c:
+       * gdesktopappinfo.c: Use hash table iterators.
+
 2007-12-14  Alexander Larsson  <alexl@redhat.com>
 
        * Makefile.am:
index 1ef9d00..2404a7b 100644 (file)
@@ -781,17 +781,6 @@ g_content_type_guess (const char   *filename,
   return mimetype;
 }
 
-static gboolean
-foreach_mimetype (gpointer key,
-                 gpointer value,
-                 gpointer user_data)
-{
-  GList **l = user_data;
-
-  *l = g_list_prepend (*l, (char *)key);
-  return TRUE;
-}
-
 static void
 enumerate_mimetypes_subdir (const char *dir, 
                             const char *prefix, 
@@ -859,6 +848,8 @@ g_content_types_get_registered (void)
 {
   const char * const* dirs;
   GHashTable *mimetypes;
+  GHashTableIter iter;
+  gpointer key;
   int i;
   GList *l;
 
@@ -871,7 +862,10 @@ g_content_types_get_registered (void)
     enumerate_mimetypes_dir (dirs[i], mimetypes);
 
   l = NULL;
-  g_hash_table_foreach_steal (mimetypes, foreach_mimetype, &l);
+  g_hash_table_iter_init (&iter, mimetypes);
+  while (g_hash_table_iter_next (&iter, &key, NULL))
+    l = g_list_prepend (l, key);
+
   g_hash_table_destroy (mimetypes);
 
   return l;
index 8fc3a86..973148e 100644 (file)
@@ -1651,17 +1651,6 @@ get_apps_from_dir (GHashTable *apps,
     }
 }
 
-static void
-collect_apps (gpointer key,
-             gpointer value,
-             gpointer user_data)
-{
-  GList **infos = user_data;
-
-  if (value)
-    *infos = g_list_prepend (*infos, value);
-}
-
 
 /**
  * g_app_info_get_all:
@@ -1675,6 +1664,8 @@ g_app_info_get_all (void)
 {
   const char * const *dirs;
   GHashTable *apps;
+  GHashTableIter iter;
+  gpointer key;
   int i;
   GList *infos;
 
@@ -1689,9 +1680,9 @@ g_app_info_get_all (void)
 
 
   infos = NULL;
-  g_hash_table_foreach (apps,
-                       collect_apps,
-                       &infos);
+  g_hash_table_iter_init (&iter, apps);
+  while (g_hash_table_iter_next (&iter, &key, NULL))
+    infos = g_list_prepend (infos, key);
 
   g_hash_table_destroy (apps);