OSDN Git Service

optimize QFSFileEngine::fileFlags()
authorIvailo Monev <xakepa10@gmail.com>
Sun, 25 Oct 2020 17:27:50 +0000 (19:27 +0200)
committerIvailo Monev <xakepa10@gmail.com>
Sun, 25 Oct 2020 17:27:50 +0000 (19:27 +0200)
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
src/core/io/qfsfileengine_unix.cpp

index 73104fd..212ab05 100644 (file)
@@ -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;