dolphin rebuild

This commit is contained in:
Rmys
2020-04-19 22:53:46 +03:00
parent 8d34d02760
commit d1ba74940f
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>