[gimp/gimp-2-8] Bug 739003 - Crashes in file_save_dialog_response()



commit 908f4e69d656e5a1cd4b23310a16e287e8ae72f7
Author: Michael Natterer <mitch gimp org>
Date:   Tue Jul 14 13:22:06 2015 +0200

    Bug 739003 - Crashes in file_save_dialog_response()
    
    Ref/unref the dialog around saving the image insatead of connecting to
    "destroy" and NULLifying the local dialog variable on destruction,
    which has caused weird crashes on fedora.
    
    (cherry picked from commit a0e48ad29e93e2dc259879abeb2dedc9a420b8f6)

 app/dialogs/file-save-dialog.c |   12 +++---------
 1 files changed, 3 insertions(+), 9 deletions(-)
---
diff --git a/app/dialogs/file-save-dialog.c b/app/dialogs/file-save-dialog.c
index 8b0873f..b5f3093 100644
--- a/app/dialogs/file-save-dialog.c
+++ b/app/dialogs/file-save-dialog.c
@@ -160,7 +160,6 @@ file_save_dialog_response (GtkWidget *save_dialog,
   gchar               *uri;
   gchar               *basename;
   GimpPlugInProcedure *save_proc;
-  gulong               handler_id;
 
   if (! dialog->export)
     {
@@ -183,9 +182,7 @@ file_save_dialog_response (GtkWidget *save_dialog,
       return;
     }
 
-  handler_id = g_signal_connect (dialog, "destroy",
-                                 G_CALLBACK (gtk_widget_destroyed),
-                                 &dialog);
+  g_object_ref (dialog);
 
   switch (file_save_dialog_check_uri (save_dialog, gimp,
                                       &uri, &basename, &save_proc))
@@ -245,9 +242,7 @@ file_save_dialog_response (GtkWidget *save_dialog,
       g_free (uri);
       g_free (basename);
 
-      if (dialog)
-        gimp_file_dialog_set_sensitive (dialog, TRUE);
-
+      gimp_file_dialog_set_sensitive (dialog, TRUE);
       break;
 
     case CHECK_URI_SWITCH_DIALOGS:
@@ -259,8 +254,7 @@ file_save_dialog_response (GtkWidget *save_dialog,
       break;
     }
 
-  if (dialog)
-    g_signal_handler_disconnect (dialog, handler_id);
+  g_object_unref (dialog);
 }
 
 /* IMPORTANT: When changing this function, keep


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