diff options
| -rw-r--r-- | src/corelib/io/qabstractfileengine.cpp | 5 | ||||
| -rw-r--r-- | src/corelib/io/qabstractfileengine_p.h | 6 | ||||
| -rw-r--r-- | src/corelib/io/qfsfileengine.cpp | 7 | ||||
| -rw-r--r-- | src/corelib/io/qfsfileengine_p.h | 2 | ||||
| -rw-r--r-- | src/corelib/io/qresource.cpp | 5 |
5 files changed, 14 insertions, 11 deletions
diff --git a/src/corelib/io/qabstractfileengine.cpp b/src/corelib/io/qabstractfileengine.cpp index 70e68be21c1..a3fa9c00f86 100644 --- a/src/corelib/io/qabstractfileengine.cpp +++ b/src/corelib/io/qabstractfileengine.cpp @@ -318,9 +318,8 @@ std::unique_ptr<QAbstractFileEngine> QAbstractFileEngine::create(const QString & \sa setFileName() */ -QAbstractFileEngine::QAbstractFileEngine() : d_ptr(new QAbstractFileEnginePrivate) +QAbstractFileEngine::QAbstractFileEngine() : d_ptr(new QAbstractFileEnginePrivate(this)) { - d_ptr->q_ptr = this; } /*! @@ -330,7 +329,7 @@ QAbstractFileEngine::QAbstractFileEngine() : d_ptr(new QAbstractFileEnginePrivat */ QAbstractFileEngine::QAbstractFileEngine(QAbstractFileEnginePrivate &dd) : d_ptr(&dd) { - d_ptr->q_ptr = this; + Q_ASSERT(d_ptr->q_ptr == this); } /*! diff --git a/src/corelib/io/qabstractfileengine_p.h b/src/corelib/io/qabstractfileengine_p.h index 5e6232af71a..704b0c94c55 100644 --- a/src/corelib/io/qabstractfileengine_p.h +++ b/src/corelib/io/qabstractfileengine_p.h @@ -242,8 +242,8 @@ private: class QAbstractFileEnginePrivate { public: - inline QAbstractFileEnginePrivate() - : fileError(QFile::UnspecifiedError) + inline QAbstractFileEnginePrivate(QAbstractFileEngine *q) + : fileError(QFile::UnspecifiedError), q_ptr(q) { } inline virtual ~QAbstractFileEnginePrivate() { } @@ -251,7 +251,7 @@ public: QFile::FileError fileError; QString errorString; - QAbstractFileEngine *q_ptr; + QAbstractFileEngine *const q_ptr; Q_DECLARE_PUBLIC(QAbstractFileEngine) }; diff --git a/src/corelib/io/qfsfileengine.cpp b/src/corelib/io/qfsfileengine.cpp index 2f9087bf6a3..6610b6ecd66 100644 --- a/src/corelib/io/qfsfileengine.cpp +++ b/src/corelib/io/qfsfileengine.cpp @@ -76,7 +76,8 @@ static_assert(sizeof(SignedIOType) == sizeof(UnsignedIOType), */ //**************** QFSFileEnginePrivate -QFSFileEnginePrivate::QFSFileEnginePrivate() : QAbstractFileEnginePrivate() +QFSFileEnginePrivate::QFSFileEnginePrivate(QAbstractFileEngine *q) + : QAbstractFileEnginePrivate(q) { init(); } @@ -108,7 +109,7 @@ void QFSFileEnginePrivate::init() Constructs a QFSFileEngine for the file name \a file. */ QFSFileEngine::QFSFileEngine(const QString &file) - : QAbstractFileEngine(*new QFSFileEnginePrivate) + : QAbstractFileEngine(*new QFSFileEnginePrivate(this)) { Q_D(QFSFileEngine); d->fileEntry = QFileSystemEntry(file); @@ -117,7 +118,7 @@ QFSFileEngine::QFSFileEngine(const QString &file) /*! Constructs a QFSFileEngine. */ -QFSFileEngine::QFSFileEngine() : QAbstractFileEngine(*new QFSFileEnginePrivate) +QFSFileEngine::QFSFileEngine() : QAbstractFileEngine(*new QFSFileEnginePrivate(this)) { } diff --git a/src/corelib/io/qfsfileengine_p.h b/src/corelib/io/qfsfileengine_p.h index 5e77804606a..f6b3a39e647 100644 --- a/src/corelib/io/qfsfileengine_p.h +++ b/src/corelib/io/qfsfileengine_p.h @@ -222,7 +222,7 @@ public: return (openMode & QFile::WriteOnly) && !(openMode & QFile::ExistingOnly); } protected: - QFSFileEnginePrivate(); + QFSFileEnginePrivate(QAbstractFileEngine *q); void init(); diff --git a/src/corelib/io/qresource.cpp b/src/corelib/io/qresource.cpp index 83df4e1aec1..bd208896861 100644 --- a/src/corelib/io/qresource.cpp +++ b/src/corelib/io/qresource.cpp @@ -1397,6 +1397,9 @@ private: // minimum size for which we'll try to re-open ourselves in mapUncompressed() static constexpr qsizetype RemapCompressedThreshold = 16384; protected: + QResourceFileEnginePrivate(QAbstractFileEngine *q) : + QAbstractFileEnginePrivate(q) {} + ~QResourceFileEnginePrivate() { if (mustUnmap) @@ -1410,7 +1413,7 @@ bool QResourceFileEngine::caseSensitive() const } QResourceFileEngine::QResourceFileEngine(const QString &file) : - QAbstractFileEngine(*new QResourceFileEnginePrivate) + QAbstractFileEngine(*new QResourceFileEnginePrivate(this)) { Q_D(QResourceFileEngine); d->resource.setFileName(file); |
