GAppInfoMonitor: don't try to use NULL hash table
authorRyan Lortie <desrt@desrt.ca>
Thu, 7 Nov 2013 18:56:56 +0000 (13:56 -0500)
committerRyan Lortie <desrt@desrt.ca>
Thu, 7 Nov 2013 18:56:56 +0000 (13:56 -0500)
Don't g_hash_table_iter_init() on a NULL table if we see the app info
monitoring but no monitors have been created yet.

https://bugzilla.gnome.org/show_bug.cgi?id=711632

gio/gappinfo.c

index 941015c..0789f5d 100644 (file)
@@ -1237,15 +1237,18 @@ g_app_info_monitor_fire (void)
 
   g_mutex_lock (&g_app_info_monitor_lock);
 
-  g_hash_table_iter_init (&iter, g_app_info_monitors);
-  while (g_hash_table_iter_next (&iter, &context, NULL))
+  if (g_app_info_monitors)
     {
-      GSource *idle;
-
-      idle = g_idle_source_new ();
-      g_source_set_callback (idle, g_app_info_monitor_emit, context, NULL);
-      g_source_attach (idle, context);
-      g_source_unref (idle);
+      g_hash_table_iter_init (&iter, g_app_info_monitors);
+      while (g_hash_table_iter_next (&iter, &context, NULL))
+        {
+          GSource *idle;
+
+          idle = g_idle_source_new ();
+          g_source_set_callback (idle, g_app_info_monitor_emit, context, NULL);
+          g_source_attach (idle, context);
+          g_source_unref (idle);
+        }
     }
 
   g_mutex_unlock (&g_app_info_monitor_lock);