From eabc4109a2703aa761eff7a26cfa7001af8577a3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Abecasis?= Date: Fri, 17 Jul 2009 12:31:29 +0200 Subject: QDirIterator refactoring Moving member data around and marking immutable data as such. Reviewed-by: Marius Storm-Olsen --- src/corelib/io/qdiriterator.cpp | 29 ++++++++++++++++------------- 1 file changed, 16 insertions(+), 13 deletions(-) diff --git a/src/corelib/io/qdiriterator.cpp b/src/corelib/io/qdiriterator.cpp index ea54941..371e822 100644 --- a/src/corelib/io/qdiriterator.cpp +++ b/src/corelib/io/qdiriterator.cpp @@ -112,16 +112,19 @@ public: void checkAndPushDirectory(const QFileInfo &); bool matchesFilters(const QString &fileName, const QFileInfo &fi) const; - QSet visitedLinks; - QAbstractFileEngine *engine; + QAbstractFileEngine * const engine; + + const QString path; + const QStringList nameFilters; + const QDir::Filters filters; + const QDirIterator::IteratorFlags iteratorFlags; + QStack fileEngineIterators; - QString path; - QFileInfo nextFileInfo; - //This fileinfo is the current that we will return from the public API QFileInfo currentFileInfo; - QDirIterator::IteratorFlags iteratorFlags; - QDir::Filters filters; - QStringList nameFilters; + QFileInfo nextFileInfo; + + // Loop protection + QSet visitedLinks; QDirIterator *q; }; @@ -131,12 +134,12 @@ public: */ QDirIteratorPrivate::QDirIteratorPrivate(const QString &path, const QStringList &nameFilters, QDir::Filters filters, QDirIterator::IteratorFlags flags) - : engine(QAbstractFileEngine::create(path)), path(path), iteratorFlags(flags), - filters(filters), nameFilters(nameFilters) + : engine(QAbstractFileEngine::create(path)) + , path(path) + , nameFilters(nameFilters) + , filters(QDir::NoFilter == filters ? QDir::AllEntries : filters) + , iteratorFlags(flags) { - if (QDir::NoFilter == filters) - this->filters = QDir::AllEntries; - // Populate fields for hasNext() and next() pushDirectory(QFileInfo(path)); advance(); -- cgit v0.12