Blob Blame History Raw
--- libgnomeui-2.16.0/file-chooser/gtkfilesystemgnomevfs.c.destroy-deadlock	2006-09-04 10:10:02.000000000 -0400
+++ libgnomeui-2.16.0/file-chooser/gtkfilesystemgnomevfs.c	2006-09-11 23:18:06.000000000 -0400
@@ -367,6 +367,7 @@
 				     gpointer                  user_data);
 
 static gboolean execute_vfs_callbacks_idle (gpointer data);
+static void     execute_vfs_callbacks      (gpointer data);
 
 static gchar *make_child_uri (const gchar *base_uri,
 			      const gchar *child_name,
@@ -612,7 +613,7 @@
       system_vfs->execute_vfs_callbacks_idle_id = 0;
 
       /* call pending callbacks */
-      execute_vfs_callbacks_idle (system_vfs);
+      execute_vfs_callbacks (system_vfs);
     }
 
   /* cancel pending VFS operations */
@@ -3538,15 +3539,13 @@
 }
 
 /* some code for making callback calls from idle */
-static gboolean
-execute_vfs_callbacks_idle (gpointer data)
+static void
+execute_vfs_callbacks (gpointer data)
 {
   GSList *l;
   gboolean unref_file_system = TRUE;
   GtkFileSystemGnomeVFS *system_vfs = GTK_FILE_SYSTEM_GNOME_VFS (data);
 
-  GDK_THREADS_ENTER ();
-
   if (!system_vfs->execute_vfs_callbacks_idle_id)
     unref_file_system = FALSE;
   else
@@ -3568,6 +3567,14 @@
     g_object_unref (system_vfs);
 
   system_vfs->execute_vfs_callbacks_idle_id = 0;
+}
+
+static gboolean
+execute_vfs_callbacks_idle (gpointer data)
+{
+  GDK_THREADS_ENTER ();
+
+  execute_vfs_callbacks (data);
 
   GDK_THREADS_LEAVE ();