[gtk+] path bar: Don't segfault if we get disposed quickly



commit 63bc3542ce5cf5f9e711c8f4caad8a1ee1cf0cb0
Author: Matthias Clasen <mclasen redhat com>
Date:   Mon Jan 19 11:57:10 2015 -0500

    path bar: Don't segfault if we get disposed quickly
    
    The file chooser code now calls into the path bar in init,
    starting an async operation. This unveiled that the path bar
    code was not safe against being disposed early, by causing
    a crahsh of the objects-finalize test.
    Fix this by making the callback check for CANCELLED.

 gtk/gtkpathbar.c |    4 ++++
 1 files changed, 4 insertions(+), 0 deletions(-)
---
diff --git a/gtk/gtkpathbar.c b/gtk/gtkpathbar.c
index 0afef8c..06e11c8 100644
--- a/gtk/gtkpathbar.c
+++ b/gtk/gtkpathbar.c
@@ -1791,6 +1791,9 @@ gtk_path_bar_get_info_callback (GCancellable *cancellable,
   const gchar *display_name;
   gboolean is_hidden;
 
+  if (g_error_matches (error, G_IO_ERROR, G_IO_ERROR_CANCELLED))
+    return;
+
   if (cancellable != file_info->path_bar->priv->get_info_cancellable)
     {
       gtk_path_bar_set_file_finish (file_info, FALSE);
@@ -1876,6 +1879,7 @@ _gtk_path_bar_set_file (GtkPathBar      *path_bar,
                                "standard::display-name,standard::is-hidden,standard::is-backup",
                                gtk_path_bar_get_info_callback,
                                info);
+
 }
 
 /* FIXME: This should be a construct-only property */


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]