From c8b8501f0008ae14ac8ea9874bea66a5db7aa9d4 Mon Sep 17 00:00:00 2001 From: Ivailo Monev Date: Sun, 25 Oct 2020 19:27:50 +0200 Subject: [PATCH] optimize QFSFileEngine::fileFlags() Signed-off-by: Ivailo Monev --- src/core/io/qfsfileengine_unix.cpp | 29 ++++++++++++----------------- 1 file changed, 12 insertions(+), 17 deletions(-) diff --git a/src/core/io/qfsfileengine_unix.cpp b/src/core/io/qfsfileengine_unix.cpp index 73104fd4e..212ab051b 100644 --- a/src/core/io/qfsfileengine_unix.cpp +++ b/src/core/io/qfsfileengine_unix.cpp @@ -426,26 +426,21 @@ QAbstractFileEngine::FileFlags QFSFileEngine::fileFlags(FileFlags type) const if (type & FlagsMask) ret |= LocalDiskFlag; - bool exists; - { - QFileSystemMetaData::MetaDataFlags queryFlags = 0; + QFileSystemMetaData::MetaDataFlags queryFlags = + QFileSystemMetaData::MetaDataFlags(uint(type)) + & QFileSystemMetaData::Permissions + | QFileSystemMetaData::LinkType; - queryFlags |= QFileSystemMetaData::MetaDataFlags(uint(type)) - & QFileSystemMetaData::Permissions; + if (type & TypesMask) + queryFlags |= QFileSystemMetaData::LinkType + | QFileSystemMetaData::FileType + | QFileSystemMetaData::DirectoryType; - if (type & TypesMask) - queryFlags |= QFileSystemMetaData::LinkType - | QFileSystemMetaData::FileType - | QFileSystemMetaData::DirectoryType; + if (type & FlagsMask) + queryFlags |= QFileSystemMetaData::HiddenAttribute + | QFileSystemMetaData::ExistsAttribute; - if (type & FlagsMask) - queryFlags |= QFileSystemMetaData::HiddenAttribute - | QFileSystemMetaData::ExistsAttribute; - - queryFlags |= QFileSystemMetaData::LinkType; - - exists = d->doStat(queryFlags); - } + bool exists = d->doStat(queryFlags); if (!exists && !d->metaData.isLink()) return ret;