Merge pull request #8440 from Rmys/master

dolphin rebuild
This commit is contained in:
Rmys
2020-04-19 22:54:33 +03:00
committed by GitHub
2 changed files with 48 additions and 0 deletions
@@ -0,0 +1,47 @@
From 35b4c6d4df1281afd621374e686f19e654ad7bae Mon Sep 17 00:00:00 2001
From: "Martin T. H. Sandsmark" <martin.sandsmark@kde.org>
Date: Tue, 7 Apr 2020 17:14:59 +0200
Subject: Fix crashing on starting and quitting
QCollator (especially with Qt 5.14 and ICU 65.1) is very unhappy with
threads.
To avoid having to lock and unlock the mutex everywhere (and ensure it
is unlocked before calling other things that might lock it, etc.), we do
it as locally as possible. Even if for some reason Qt and ICU make
QCollator threadsafe in the future locking here should have minimal
impact.
BUG: 419585
Differential Revision: https://phabricator.kde.org/D28659
---
src/kitemviews/kfileitemmodel.cpp | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/src/kitemviews/kfileitemmodel.cpp b/src/kitemviews/kfileitemmodel.cpp
index 4b35a02..e4dca27 100644
--- a/src/kitemviews/kfileitemmodel.cpp
+++ b/src/kitemviews/kfileitemmodel.cpp
@@ -33,6 +33,9 @@
#include <QMimeData>
#include <QTimer>
#include <QWidget>
+#include <QMutex>
+
+Q_GLOBAL_STATIC_WITH_ARGS(QMutex, s_collatorMutex, (QMutex::Recursive))
// #define KFILEITEMMODEL_DEBUG
@@ -1878,6 +1881,8 @@ int KFileItemModel::sortRoleCompare(const ItemData* a, const ItemData* b, const
int KFileItemModel::stringCompare(const QString& a, const QString& b, const QCollator& collator) const
{
+ QMutexLocker collatorLock(s_collatorMutex());
+
if (m_naturalSorting) {
return collator.compare(a, b);
}
--
cgit v1.1
@@ -44,6 +44,7 @@
</BuildDependencies>
<Patches>
<Patch level="1">dolphin-17.04.0-allow-root.patch</Patch>
<Patch level="1">kdebug-419585.patch</Patch>
</Patches>
</Source>