libgnomeui r5525 - in trunk: . file-chooser
- From: carlosg svn gnome org
- To: svn-commits-list gnome org
- Subject: libgnomeui r5525 - in trunk: . file-chooser
- Date: Tue, 12 Feb 2008 19:36:24 +0000 (GMT)
Author: carlosg
Date: Tue Feb 12 19:36:24 2008
New Revision: 5525
URL: http://svn.gnome.org/viewvc/libgnomeui?rev=5525&view=rev
Log:
2008-02-11 Carlos Garnacho <carlos imendio com>
* file-chooser/gtkfilesystemgio.c: Just pass the cancellable to the
GtkFileFolderGio object, this way it doesn't have to deal with already
freed data if the GtkFileSystemGio has been already disposed and there
were async callbacks pending. Bug #514743.
Modified:
trunk/ChangeLog
trunk/file-chooser/gtkfilesystemgio.c
Modified: trunk/file-chooser/gtkfilesystemgio.c
==============================================================================
--- trunk/file-chooser/gtkfilesystemgio.c (original)
+++ trunk/file-chooser/gtkfilesystemgio.c Tue Feb 12 19:36:24 2008
@@ -99,7 +99,7 @@
{
GObject parent_instance;
- GtkFileSystemGio *file_system;
+ GCancellable *cancellable;
GFile *parent_file;
GHashTable *children;
GFileMonitor *directory_monitor;
@@ -609,7 +609,6 @@
GAsyncResult *result,
gpointer user_data)
{
- GtkFileSystemGio *file_system;
GFileEnumerator *enumerator;
GtkFileFolderGio *folder;
GError *error = NULL;
@@ -617,7 +616,6 @@
GList *files, *f;
folder = GTK_FILE_FOLDER_GIO (user_data);
- file_system = folder->file_system;
enumerator = G_FILE_ENUMERATOR (source_object);
files = g_file_enumerator_next_files_finish (enumerator, result, &error);
@@ -649,7 +647,7 @@
g_file_enumerator_next_files_async (enumerator, FILES_PER_QUERY,
G_PRIORITY_DEFAULT,
- file_system->cancellable,
+ folder->cancellable,
enumerator_files_callback,
folder);
@@ -706,7 +704,7 @@
if (enumerator)
{
folder = g_object_new (GTK_TYPE_FILE_FOLDER_GIO, NULL);
- folder->file_system = file_system;
+ folder->cancellable = g_object_ref (file_system->cancellable);
folder->parent_file = g_object_ref (file);
folder->children = g_hash_table_new_full (g_str_hash, g_str_equal,
(GDestroyNotify) g_free,
@@ -723,7 +721,7 @@
g_file_enumerator_next_files_async (enumerator, FILES_PER_QUERY,
G_PRIORITY_DEFAULT,
- file_system->cancellable,
+ folder->cancellable,
enumerator_files_callback,
g_object_ref (folder));
g_object_unref (enumerator);
@@ -1716,6 +1714,9 @@
if (folder->directory_monitor)
g_object_unref (folder->directory_monitor);
+ if (folder->cancellable)
+ g_object_unref (folder->cancellable);
+
g_hash_table_unref (folder->children);
G_OBJECT_CLASS (gtk_file_folder_gio_parent_class)->finalize (object);
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]