diff options
| author | Tarja Sundqvist <tarja.sundqvist@qt.io> | 2025-10-10 12:01:59 +0300 |
|---|---|---|
| committer | Tarja Sundqvist <tarja.sundqvist@qt.io> | 2025-10-10 12:01:59 +0300 |
| commit | cf5106463bd3aeb78a6a51839673b0e4f008fd82 (patch) | |
| tree | b675d72375ae88453e1118c4e7be627f94fccd7c /src/linguist/lupdate/filesignificancecheck.cpp | |
| parent | 786bdcbf8cdc7ba3d4e5a8c15e1ead03c5926967 (diff) | |
| parent | 6444be988641a3a96a49fb39f28af2c532397e65 (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.cpp | 22 |
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) { |
