From: Ivailo Monev Date: Sun, 25 Oct 2020 17:27:50 +0000 (+0200) Subject: optimize QFSFileEngine::fileFlags() X-Git-Tag: 4.12.0~3434 X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=c8b8501f0008ae14ac8ea9874bea66a5db7aa9d4;p=kde%2FKatie.git optimize QFSFileEngine::fileFlags() Signed-off-by: Ivailo Monev --- 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; - - queryFlags |= QFileSystemMetaData::LinkType; + if (type & FlagsMask) + queryFlags |= QFileSystemMetaData::HiddenAttribute + | QFileSystemMetaData::ExistsAttribute; - exists = d->doStat(queryFlags); - } + bool exists = d->doStat(queryFlags); if (!exists && !d->metaData.isLink()) return ret;