OSDN Git Service

implement default QStatInfo constructor and use it as optimization in QFileSystemWatc...
authorIvailo Monev <xakepa10@gmail.com>
Tue, 27 Dec 2022 00:43:11 +0000 (02:43 +0200)
committerIvailo Monev <xakepa10@gmail.com>
Tue, 27 Dec 2022 00:43:11 +0000 (02:43 +0200)
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
src/core/io/qfilesystemwatcher.cpp
src/core/kernel/qcore_unix.cpp
src/core/kernel/qcore_unix_p.h

index 6e9a75a..bf5e471 100644 (file)
@@ -94,9 +94,12 @@ void QFileSystemWatcherPrivate::_q_timeout()
     while (dit.hasNext()) {
         QHash<QString, QStatInfo>::iterator x = dit.next();
         QString path = x.key();
-        QStatInfo fi(path, true);
-        if (!path.endsWith(QLatin1Char('/')))
+        QStatInfo fi;
+        if (!path.endsWith(QLatin1Char('/'))) {
             fi = QStatInfo(path + QLatin1Char('/'), true);
+        } else {
+            fi = QStatInfo(path, true);
+        }
         if (!fi.dirEquals(x.value())) {
             if (!fi.exists()) {
                 dit.remove();
index 2232f80..8607927 100644 (file)
@@ -22,6 +22,7 @@
 #include "qcore_unix_p.h"
 #include "qelapsedtimer.h"
 #include "qbytearray.h"
+#include "qfilesystemmetadata_p.h"
 #include "qdebug.h"
 
 #include <sys/select.h>
 
 QT_BEGIN_NAMESPACE
 
+QStatInfo::QStatInfo()
+    : m_mode(0),
+    m_uid(QFileSystemMetaData::nobodyID),
+    m_gid(QFileSystemMetaData::nobodyID),
+    m_mtime(0),
+    m_size(0)
+{
+}
+
 QStatInfo::QStatInfo(const QString &path, const bool listdir)
     : m_mode(0),
-    m_uid(-2),
-    m_gid(-2),
+    m_uid(QFileSystemMetaData::nobodyID),
+    m_gid(QFileSystemMetaData::nobodyID),
     m_mtime(0),
     m_size(0),
     m_path(path.toLocal8Bit())
index 416656b..f38e0fe 100644 (file)
@@ -68,6 +68,7 @@ QT_BEGIN_NAMESPACE
 
 class Q_CORE_EXPORT QStatInfo {
 public:
+    QStatInfo();
     QStatInfo(const QString &path, const bool listdir = false);
     QStatInfo(const QStatInfo &other);