avoid destroying dialog and occasional crashes...

...while exporting (#1215905)
This commit is contained in:
Nils Philippsen 2015-07-14 17:53:13 +02:00
parent 726d909d7f
commit 04067b59cd
2 changed files with 79 additions and 1 deletions

View File

@ -0,0 +1,69 @@
From 10f0f825bc5e0ec67a7b568faa9d444b8f26629d Mon Sep 17 00:00:00 2001
From: Nils Philippsen <nils@redhat.com>
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 <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 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

View File

@ -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 <nils@redhat.com> - 2:2.8.14-2
- avoid destroying dialog and occasional crashes while exporting (#1215905)
* Wed Jun 17 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2:2.8.14-1.2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild