From 10f0f825bc5e0ec67a7b568faa9d444b8f26629d Mon Sep 17 00:00:00 2001 From: Nils Philippsen Date: Tue, 14 Jul 2015 17:46:27 +0200 Subject: [PATCH] patch: export-dialog-destroyed-crash Squashed commit of the following: commit 269b9574ea983c173c89110fbc8d9e73de513c80 Author: Michael Natterer 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 file 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 -- 2.4.3