Browse Source

Fix crash on exit when compiled using MinGW

adaptive-webui-19844
Vladimir Golovnev (Glassez) 4 years ago
parent
commit
f35dbdfb8b
No known key found for this signature in database
GPG Key ID: 52A2C7DEE2DFA6F7
  1. 10
      src/base/utils/string.cpp

10
src/base/utils/string.cpp

@ -35,11 +35,13 @@
#include <QLocale> #include <QLocale>
#include <QRegExp> #include <QRegExp>
#include <QtGlobal> #include <QtGlobal>
#ifdef Q_OS_MACOS
#if defined(Q_OS_MACOS) || defined(__MINGW32__)
#define QBT_USES_QTHREADSTORAGE
#include <QThreadStorage> #include <QThreadStorage>
#endif #endif
#include "../tristatebool.h" #include "base/tristatebool.h"
namespace namespace
{ {
@ -139,7 +141,7 @@ int Utils::String::naturalCompare(const QString &left, const QString &right, con
// provide a single `NaturalCompare` instance for easy use // provide a single `NaturalCompare` instance for easy use
// https://doc.qt.io/qt-5/threads-reentrancy.html // https://doc.qt.io/qt-5/threads-reentrancy.html
if (caseSensitivity == Qt::CaseSensitive) { if (caseSensitivity == Qt::CaseSensitive) {
#ifdef Q_OS_MACOS // workaround for Apple xcode: https://stackoverflow.com/a/29929949 #ifdef QBT_USES_QTHREADSTORAGE
static QThreadStorage<NaturalCompare> nCmp; static QThreadStorage<NaturalCompare> nCmp;
if (!nCmp.hasLocalData()) if (!nCmp.hasLocalData())
nCmp.setLocalData(NaturalCompare(Qt::CaseSensitive)); nCmp.setLocalData(NaturalCompare(Qt::CaseSensitive));
@ -150,7 +152,7 @@ int Utils::String::naturalCompare(const QString &left, const QString &right, con
#endif #endif
} }
#ifdef Q_OS_MACOS #ifdef QBT_USES_QTHREADSTORAGE
static QThreadStorage<NaturalCompare> nCmp; static QThreadStorage<NaturalCompare> nCmp;
if (!nCmp.hasLocalData()) if (!nCmp.hasLocalData())
nCmp.setLocalData(NaturalCompare(Qt::CaseInsensitive)); nCmp.setLocalData(NaturalCompare(Qt::CaseInsensitive));

Loading…
Cancel
Save