diff --git a/gimp-2.8.14-export-dialog-destroyed-crash.patch b/gimp-2.8.14-export-dialog-destroyed-crash.patch index 36505ce..d307d03 100644 --- a/gimp-2.8.14-export-dialog-destroyed-crash.patch +++ b/gimp-2.8.14-export-dialog-destroyed-crash.patch @@ -1,38 +1,84 @@ -From 1fc061aa469c1a70288907bbb02c371fc0c1f4d3 Mon Sep 17 00:00:00 2001 +From e73e5fc5b905db79d99f1fa1b5b74820503d8b05 Mon Sep 17 00:00:00 2001 From: Nils Philippsen -Date: Fri, 17 Jul 2015 17:07:18 +0200 -Subject: [PATCH] Ref/unref dialog->image around saving as well... +Date: Fri, 17 Jul 2015 17:26:03 +0200 +Subject: [PATCH] patch: export-dialog-destroyed-crash -...to avoid warnings that happen if the image got closed before the -saving finishes. +Squashed commit of the following: -(amends commit a0e48ad29e93e2dc259879abeb2dedc9a420b8f6) +commit e9d47909528e6364311b2666e3a8cbc60a05957f +Author: Nils Philippsen +Date: Fri Jul 17 17:07:18 2015 +0200 -(cherry picked from commit 0b900239d57161da11e3e0c8094552cf1480dcd3) + Ref/unref dialog->image around saving as well... + + ...to avoid warnings that happen if the image got closed before the + saving finishes. + + (amends commit a0e48ad29e93e2dc259879abeb2dedc9a420b8f6) + + (cherry picked from commit 0b900239d57161da11e3e0c8094552cf1480dcd3) + +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 | 2 ++ - 1 file changed, 2 insertions(+) + app/dialogs/file-save-dialog.c | 14 +++++--------- + 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/app/dialogs/file-save-dialog.c b/app/dialogs/file-save-dialog.c -index b5f3093..e8a3d95 100644 +index 8b0873f..e8a3d95 100644 --- a/app/dialogs/file-save-dialog.c +++ b/app/dialogs/file-save-dialog.c -@@ -183,6 +183,7 @@ file_save_dialog_response (GtkWidget *save_dialog, +@@ -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,8 @@ file_save_dialog_response (GtkWidget *save_dialog, + return; } - g_object_ref (dialog); +- handler_id = g_signal_connect (dialog, "destroy", +- G_CALLBACK (gtk_widget_destroyed), +- &dialog); ++ g_object_ref (dialog); + g_object_ref (dialog->image); switch (file_save_dialog_check_uri (save_dialog, gimp, &uri, &basename, &save_proc)) -@@ -254,6 +255,7 @@ file_save_dialog_response (GtkWidget *save_dialog, +@@ -245,9 +243,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 +255,8 @@ file_save_dialog_response (GtkWidget *save_dialog, break; } +- if (dialog) +- g_signal_handler_disconnect (dialog, handler_id); + g_object_unref (dialog->image); - g_object_unref (dialog); ++ g_object_unref (dialog); } + /* IMPORTANT: When changing this function, keep -- 2.4.3