From bb3efc59887dd837802fe2329041ac404cf5a8af Mon Sep 17 00:00:00 2001 From: Jocelyn Turcotte Date: Thu, 26 Jan 2017 14:25:31 +0100 Subject: [PATCH] Clear SyncEngine::_remotePerms after the sync Also make reuse the SyncFileItem::_remotePerm QByteArray allocation instead of redoing the copy from the csync char*. --- src/libsync/syncengine.cpp | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/libsync/syncengine.cpp b/src/libsync/syncengine.cpp index 462c6b268..ab3fe11b2 100644 --- a/src/libsync/syncengine.cpp +++ b/src/libsync/syncengine.cpp @@ -407,6 +407,8 @@ int SyncEngine::treewalkFile( TREE_WALK_FILE *file, bool remote ) } if (file->remotePerm && file->remotePerm[0]) { item->_remotePerm = QByteArray(file->remotePerm); + if (remote) + _remotePerms[item->_file] = item->_remotePerm; } /* The flag "serverHasIgnoredFiles" is true if item in question is a directory @@ -437,10 +439,6 @@ int SyncEngine::treewalkFile( TREE_WALK_FILE *file, bool remote ) _seenFiles.insert(renameTarget); } - if (remote && file->remotePerm && file->remotePerm[0]) { - _remotePerms[item->_file] = file->remotePerm; - } - switch(file->error_status) { case CSYNC_STATUS_OK: break; @@ -894,6 +892,7 @@ void SyncEngine::slotDiscoveryJobFinished(int discoveryResult) _hasForwardInTimeFiles = false; _backInTimeFiles = 0; bool walkOk = true; + _remotePerms.clear(); _seenFiles.clear(); _temporarilyUnavailablePaths.clear(); _renamedFolders.clear(); @@ -1111,6 +1110,10 @@ void SyncEngine::finalize(bool success) // Delete the propagator only after emitting the signal. _propagator.clear(); + _remotePerms.clear(); + _seenFiles.clear(); + _temporarilyUnavailablePaths.clear(); + _renamedFolders.clear(); _clearTouchedFilesTimer.start(); } -- 2.30.2