--- 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 ();