summaryrefslogtreecommitdiffstats
path: root/src/linguist/lupdate/filesignificancecheck.cpp
diff options
context:
space:
mode:
authorTarja Sundqvist <tarja.sundqvist@qt.io>2025-10-10 12:01:59 +0300
committerTarja Sundqvist <tarja.sundqvist@qt.io>2025-10-10 12:01:59 +0300
commitcf5106463bd3aeb78a6a51839673b0e4f008fd82 (patch)
treeb675d72375ae88453e1118c4e7be627f94fccd7c /src/linguist/lupdate/filesignificancecheck.cpp
parent786bdcbf8cdc7ba3d4e5a8c15e1ead03c5926967 (diff)
parent6444be988641a3a96a49fb39f28af2c532397e65 (diff)
Merge tag 'v6.5.7-lts' into tqtc/lts-6.5-opensourcev6.5.7-lts-lgpl6.5
Qt 6.5.7-lts release Conflicts solved: dependencies.yaml Change-Id: I17f2889bbcdd447aacb628177f1df4cad4b2cd16
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) {