summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/corelib/io/qdir.h2
-rw-r--r--src/corelib/io/qdiriterator.cpp4
2 files changed, 3 insertions, 3 deletions
diff --git a/src/corelib/io/qdir.h b/src/corelib/io/qdir.h
index 5551ecd2fb..a5105fe2fb 100644
--- a/src/corelib/io/qdir.h
+++ b/src/corelib/io/qdir.h
@@ -52,6 +52,7 @@ QT_BEGIN_HEADER
QT_BEGIN_NAMESPACE
+class QDirIterator;
class QDirPrivate;
class Q_CORE_EXPORT QDir
@@ -210,6 +211,7 @@ protected:
QSharedDataPointer<QDirPrivate> d_ptr;
private:
+ friend class QDirIterator;
// Q_DECLARE_PRIVATE equivalent for shared data pointers
QDirPrivate* d_func();
inline const QDirPrivate* d_func() const
diff --git a/src/corelib/io/qdiriterator.cpp b/src/corelib/io/qdiriterator.cpp
index b8536a8dce..56912e8706 100644
--- a/src/corelib/io/qdiriterator.cpp
+++ b/src/corelib/io/qdiriterator.cpp
@@ -410,9 +410,7 @@ bool QDirIteratorPrivate::matchesFilters(const QString &fileName, const QFileInf
*/
QDirIterator::QDirIterator(const QDir &dir, IteratorFlags flags)
{
- // little trick to get hold of the QDirPrivate while there is no API on QDir to give it to us
- class MyQDir : public QDir { public: const QDirPrivate *priv() const { return d_ptr.constData(); } };
- const QDirPrivate *other = static_cast<const MyQDir*>(&dir)->priv();
+ const QDirPrivate *other = dir.d_ptr.constData();
d.reset(new QDirIteratorPrivate(other->dirEntry, other->nameFilters, other->filters, flags, !other->fileEngine.isNull()));
}