summaryrefslogtreecommitdiffstats
path: root/src/linguist/lupdate/filesignificancecheck.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/linguist/lupdate/filesignificancecheck.cpp')
-rw-r--r--src/linguist/lupdate/filesignificancecheck.cpp22
1 files changed, 9 insertions, 13 deletions
diff --git a/src/linguist/lupdate/filesignificancecheck.cpp b/src/linguist/lupdate/filesignificancecheck.cpp
index 9babe6898..65ae303f7 100644
--- a/src/linguist/lupdate/filesignificancecheck.cpp
+++ b/src/linguist/lupdate/filesignificancecheck.cpp
@@ -3,8 +3,6 @@
#include "filesignificancecheck.h"
-#include <mutex>
-
QT_BEGIN_NAMESPACE
FileSignificanceCheck *FileSignificanceCheck::m_instance = nullptr;
@@ -17,12 +15,9 @@ void FileSignificanceCheck::setRootDirectories(const QStringList &paths)
m_rootDirs[i].setPath(paths.at(i));
}
-void FileSignificanceCheck::setExclusionPatterns(const QStringList &patterns)
+void FileSignificanceCheck::setExclusionRegExes(const QVector<QRegularExpression> &expressions)
{
- const size_t patternsSize = static_cast<size_t>(patterns.size());
- m_exclusionRegExes.resize(patternsSize);
- for (size_t i = 0; i < patternsSize; ++i)
- m_exclusionRegExes[i] = QRegularExpression::fromWildcard(patterns.at(i));
+ m_exclusionRegExes = expressions;
}
/*
@@ -37,14 +32,15 @@ void FileSignificanceCheck::setExclusionPatterns(const QStringList &patterns)
bool FileSignificanceCheck::isFileSignificant(const std::string &filePath) const
{
// cache lookup
- std::shared_lock<std::shared_mutex> readLock(m_cacheMutex);
- auto it = m_cache.find(filePath);
- if (it != m_cache.end())
- return it->second;
+ {
+ QReadLocker locker(&m_cacheLock);
+ auto it = m_cache.find(filePath);
+ if (it != m_cache.end())
+ return it->second;
+ }
// cache miss
- readLock.unlock();
- std::unique_lock<std::shared_mutex> writeLock(m_cacheMutex);
+ QWriteLocker locker(&m_cacheLock);
QString file = QString::fromUtf8(filePath);
QString cleanFile = QDir::cleanPath(file);
for (const QRegularExpression &rx : m_exclusionRegExes) {