diff --git a/src/corelib/io/qfilesystemengine_unix.cpp b/src/corelib/io/qfilesystemengine_unix.cpp index ef73b8c88f0..4b9e94df0f8 100644 --- a/src/corelib/io/qfilesystemengine_unix.cpp +++ b/src/corelib/io/qfilesystemengine_unix.cpp @@ -1361,9 +1361,6 @@ bool QFileSystemEngine::moveFileToTrash(const QFileSystemEntry &source, uniqueTrashedName = makeUniqueTrashedName(); } while (!infoFile.isOpen()); - const QString targetPath = trashDir.filePath(filesDir) + uniqueTrashedName; - const QFileSystemEntry target(targetPath); - QString pathForInfo; const QStorageInfo storageInfo(sourcePath); if (storageInfo.isValid() && storageInfo.rootPath() != rootPath() && storageInfo != QStorageInfo(QDir::home())) { @@ -1379,6 +1376,7 @@ bool QFileSystemEngine::moveFileToTrash(const QFileSystemEntry &source, In that case, we don't try further, i.e. copying and removing the original is usually not what the user would expect to happen. */ + QFileSystemEntry target(trashDir.filePath(filesDir) + uniqueTrashedName); if (!renameFile(source, target, error)) { infoFile.close(); infoFile.remove(); @@ -1393,7 +1391,7 @@ bool QFileSystemEngine::moveFileToTrash(const QFileSystemEntry &source, infoFile.write(info); infoFile.close(); - newLocation = QFileSystemEntry(targetPath); + newLocation = std::move(target); return true; #endif // QT_BOOTSTRAPPED }