From ce420d77a812cf10ea62a2256140cde62a4e73ab Mon Sep 17 00:00:00 2001 From: Christian Kamm Date: Fri, 19 Oct 2018 10:51:25 +0200 Subject: [PATCH] Discovery: Don't rebuild invalidFilname regex each call --- src/libsync/discovery.cpp | 5 ++--- src/libsync/discoveryphase.h | 2 +- src/libsync/syncengine.cpp | 3 ++- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/libsync/discovery.cpp b/src/libsync/discovery.cpp index 08ae57be5..df0b95148 100644 --- a/src/libsync/discovery.cpp +++ b/src/libsync/discovery.cpp @@ -157,9 +157,8 @@ bool ProcessDirectoryJob::handleExcluded(const QString &path, bool isDirectory, // FIXME: move to ExcludedFiles 's regexp ? bool isInvalidPattern = false; - if (excluded == CSYNC_NOT_EXCLUDED && !_discoveryData->_invalidFilenamePattern.isEmpty()) { - const QRegExp invalidFilenameRx(_discoveryData->_invalidFilenamePattern); - if (path.contains(invalidFilenameRx)) { + if (excluded == CSYNC_NOT_EXCLUDED && !_discoveryData->_invalidFilenameRx.isEmpty()) { + if (path.contains(_discoveryData->_invalidFilenameRx)) { excluded = CSYNC_FILE_EXCLUDE_INVALID_CHAR; isInvalidPattern = true; } diff --git a/src/libsync/discoveryphase.h b/src/libsync/discoveryphase.h index f0dd54619..1bd9dd06b 100644 --- a/src/libsync/discoveryphase.h +++ b/src/libsync/discoveryphase.h @@ -169,7 +169,7 @@ public: QStringList _selectiveSyncBlackList; QStringList _selectiveSyncWhiteList; ExcludedFiles *_excludes; - QString _invalidFilenamePattern; // FIXME: maybe move in ExcludedFiles + QRegExp _invalidFilenameRx; // FIXME: maybe move in ExcludedFiles bool _ignoreHiddenFiles = false; std::function _shouldDiscoverLocaly; diff --git a/src/libsync/syncengine.cpp b/src/libsync/syncengine.cpp index 32efc0bf4..8bd3a68db 100644 --- a/src/libsync/syncengine.cpp +++ b/src/libsync/syncengine.cpp @@ -587,7 +587,8 @@ void SyncEngine::slotStartDiscovery() // version check doesn't make sense for custom servers. invalidFilenamePattern = "[\\\\:?*\"<>|]"; } - _discoveryPhase->_invalidFilenamePattern = invalidFilenamePattern; + if (!invalidFilenamePattern.isEmpty()) + _discoveryPhase->_invalidFilenameRx = QRegExp(invalidFilenamePattern); _discoveryPhase->_ignoreHiddenFiles = ignoreHiddenFiles(); connect(_discoveryPhase.data(), &DiscoveryPhase::itemDiscovered, this, &SyncEngine::slotItemDiscovered); -- 2.30.2