diff options
author | Michael Palimaka <kensington@gentoo.org> | 2014-12-26 15:19:04 +0000 |
---|---|---|
committer | Michael Palimaka <kensington@gentoo.org> | 2014-12-26 15:19:04 +0000 |
commit | c1035a113f5aaff781cf205c24eabf67ff40a23f (patch) | |
tree | 02a6d425bb6046394e9dd1f30fb8a45514fc51f5 /kde-base/ark/files/ark-4.14.3-crash.patch | |
parent | Work-around unnecessary non-native libmount/util-linux dep, bug #533602. (diff) | |
download | gentoo-2-c1035a113f5aaff781cf205c24eabf67ff40a23f.tar.gz gentoo-2-c1035a113f5aaff781cf205c24eabf67ff40a23f.tar.bz2 gentoo-2-c1035a113f5aaff781cf205c24eabf67ff40a23f.zip |
Backport patch from upstream solving a crash wrt bug #533612.
(Portage version: 2.2.15/cvs/Linux x86_64, signed Manifest commit with key 0x06B1F38DCA45A1EC!)
Diffstat (limited to 'kde-base/ark/files/ark-4.14.3-crash.patch')
-rw-r--r-- | kde-base/ark/files/ark-4.14.3-crash.patch | 81 |
1 files changed, 81 insertions, 0 deletions
diff --git a/kde-base/ark/files/ark-4.14.3-crash.patch b/kde-base/ark/files/ark-4.14.3-crash.patch new file mode 100644 index 000000000000..5eccf82062fd --- /dev/null +++ b/kde-base/ark/files/ark-4.14.3-crash.patch @@ -0,0 +1,81 @@ +From cd8ad2761d41d1ec0a18cff7f4d166b53c899fc2 Mon Sep 17 00:00:00 2001 +From: Raphael Kubo da Costa <rakuco@FreeBSD.org> +Date: Mon, 24 Nov 2014 01:37:06 +0200 +Subject: [PATCH] Stop crashing on exit when being used solely as a KPart. + +This change fixes a crash introduced by commit 3b981ca ("Remove Part +from KXMLGUIFactory on exit"). + +Part::~Part() is the wrong place to call KXMLGUIFactory::removeClient(), +as it assumes addClient() had been called in the first place. + +This is only true if Ark is called as a standalone program, since that +is done in MainWindow::loadPart()'s call to KXMLGuiWindow::createGUI(). + +Conversely, if the Ark KPart is being used as an embedded viewer in, +say, Konqueror or to preview an archive inside an archive (ie. Ark +inside Ark) that does not hold true and we try to access a +KXMLGUIFactory that does not exist. + +Instead, call KXMLGuiWindow::removeClient() in MainWindow's destructor, +since in this case we are certain that addClient() was been called +before. + +CCBUG: 341187 + +(cherry picked from commit 9c30f30b38c36a31e6fcb3aa047a0247ac5a22fb) +This was committed for completeness, as there will be no additional +releases from the KDE/4.14 branch. + +Conflicts: + part/part.cpp +--- + app/mainwindow.cpp | 3 +++ + part/part.cpp | 3 --- + 2 files changed, 3 insertions(+), 3 deletions(-) + +diff --git a/app/mainwindow.cpp b/app/mainwindow.cpp +index aee8231..181fe76 100644 +--- a/app/mainwindow.cpp ++++ b/app/mainwindow.cpp +@@ -38,6 +38,7 @@ + #include <KDebug> + #include <KEditToolBar> + #include <KShortcutsDialog> ++#include <KXMLGUIFactory> + + #include <QDragEnterEvent> + #include <QDragMoveEvent> +@@ -69,6 +70,8 @@ MainWindow::~MainWindow() + if (m_recentFilesAction) { + m_recentFilesAction->saveEntries(KGlobal::config()->group("Recent Files")); + } ++ ++ guiFactory()->removeClient(m_part); + delete m_part; + m_part = 0; + } +diff --git a/part/part.cpp b/part/part.cpp +index bae4882..09fe1cb 100644 +--- a/part/part.cpp ++++ b/part/part.cpp +@@ -53,7 +53,6 @@ + #include <KStandardGuiItem> + #include <KTempDir> + #include <KToggleAction> +-#include <KXMLGUIFactory> + + #include <QAction> + #include <QCursor> +@@ -138,8 +137,6 @@ Part::Part(QWidget *parentWidget, QObject *parent, const QVariantList& args) + + Part::~Part() + { +- factory()->removeClient(this); +- + saveSplitterSizes(); + + m_extractFilesAction->menu()->deleteLater(); +-- +2.0.5 + |