From 04067b59cdde61c99f44c37db5ed0d54bdce2b0c Mon Sep 17 00:00:00 2001 From: Nils Philippsen Date: Tue, 14 Jul 2015 17:53:13 +0200 Subject: [PATCH] avoid destroying dialog and occasional crashes... ...while exporting (#1215905) --- ...2.8.14-export-dialog-destroyed-crash.patch | 69 +++++++++++++++++++ gimp.spec | 11 ++- 2 files changed, 79 insertions(+), 1 deletion(-) create mode 100644 gimp-2.8.14-export-dialog-destroyed-crash.patch diff --git a/gimp-2.8.14-export-dialog-destroyed-crash.patch b/gimp-2.8.14-export-dialog-destroyed-crash.patch new file mode 100644 index 0000000..52b50d8 --- /dev/null +++ b/gimp-2.8.14-export-dialog-destroyed-crash.patch @@ -0,0 +1,69 @@ +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 + diff --git a/gimp.spec b/gimp.spec index bc79276..e67705b 100644 --- a/gimp.spec +++ b/gimp.spec @@ -82,7 +82,7 @@ Summary: GNU Image Manipulation Program Name: gimp Epoch: 2 Version: 2.8.14 -Release: %{?prerelprefix}1%{dotprerel}%{dotgitrev}%{?dist}.2 +Release: %{?prerelprefix}2%{dotprerel}%{dotgitrev}%{?dist} # Compute some version related macros. # Ugly, need to get quoting percent signs straight. @@ -202,6 +202,11 @@ Patch0: gimp-%{version}%{dashprerel}-git%{gitrev}.patch.bz2 # Fedora specific. Patch1: gimp-2.8.2-cm-system-monitor-profile-by-default.patch +# https://bugzilla.redhat.com/show_bug.cgi?id=1215905 +# Avoid destroying dialog and occasional crashes while exporting. +# Upstream commit 908f4e69d656e5a1cd4b23310a16e287e8ae72f7. +Patch2: gimp-2.8.14-export-dialog-destroyed-crash.patch + # use external help browser directly if help browser plug-in is not built Patch100: gimp-2.8.6-external-help-browser.patch @@ -291,6 +296,7 @@ EOF %endif %patch1 -p1 -b .cm-system-monitor-profile-by-default +%patch2 -p1 -b .export-dialog-destroyed-crash %if ! %{with helpbrowser} %patch100 -p1 -b .external-help-browser @@ -652,6 +658,9 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %endif %changelog +* Tue Jul 14 2015 Nils Philippsen - 2:2.8.14-2 +- avoid destroying dialog and occasional crashes while exporting (#1215905) + * Wed Jun 17 2015 Fedora Release Engineering - 2:2.8.14-1.2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild