From: Christian Kamm Date: Fri, 19 Oct 2018 08:51:25 +0000 (+0200) Subject: Discovery: Don't rebuild invalidFilname regex each call X-Git-Tag: archive/raspbian/3.16.7-1_deb13u1+rpi1~1^2~12^2~21^2~468^2~462 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=ce420d77a812cf10ea62a2256140cde62a4e73ab;p=nextcloud-desktop.git Discovery: Don't rebuild invalidFilname regex each call --- 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);