[Xfce4-commits] <thunar:xfce-4.8> Fix crash when removing an ancestor of the current folder (bug #8168).

Jannis Pohlmann noreply at xfce.org
Sun Feb 26 18:48:01 CET 2012


Updating branch refs/heads/xfce-4.8
         to 71f6f207cfd0194a3f3db83cb5fab694a5036e22 (commit)
       from aff99d32251455d163c26fce78f2dd6056b874aa (commit)

commit 71f6f207cfd0194a3f3db83cb5fab694a5036e22
Author: Jannis Pohlmann <jannis at xfce.org>
Date:   Sun Feb 26 17:38:50 2012 +0000

    Fix crash when removing an ancestor of the current folder (bug #8168).
    
    Whenever we release the GFileMonitor of a ThunarFolder, we also need to
    disconnect from its signals. Otherwise one of the signal handlers might
    still be called, potentially with corrupted user data (which was the
    case here).

 NEWS                   |    1 +
 thunar/thunar-folder.c |    2 ++
 2 files changed, 3 insertions(+), 0 deletions(-)

diff --git a/NEWS b/NEWS
index a0cb0dd..f91553e 100644
--- a/NEWS
+++ b/NEWS
@@ -2,6 +2,7 @@
 =====
 - Fix sorting of filenames with large numbers (bug #5356).
   Patch by Erik Koegel.
+- Fix crash when removing an ancestor of the current folder (bug #8168).
 
 1.2.3
 =====
diff --git a/thunar/thunar-folder.c b/thunar/thunar-folder.c
index 62015fe..4076b8d 100644
--- a/thunar/thunar-folder.c
+++ b/thunar/thunar-folder.c
@@ -236,6 +236,7 @@ thunar_folder_finalize (GObject *object)
   /* disconnect from the file alteration monitor */
   if (G_LIKELY (folder->monitor != NULL))
     {
+      g_signal_handlers_disconnect_matched (folder->monitor, G_SIGNAL_MATCH_DATA, 0, 0, NULL, NULL, folder);
       g_file_monitor_cancel (folder->monitor);
       g_object_unref (folder->monitor);
     }
@@ -705,6 +706,7 @@ thunar_folder_reload (ThunarFolder *folder)
   /* disconnect from the file alteration monitor */
   if (G_UNLIKELY (folder->monitor != NULL))
     {
+      g_signal_handlers_disconnect_matched (folder->monitor, G_SIGNAL_MATCH_DATA, 0, 0, NULL, NULL, folder);
       g_file_monitor_cancel (folder->monitor);
       g_object_unref (folder->monitor);
       folder->monitor = NULL;


More information about the Xfce4-commits mailing list