diff options
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) { |
