diff --git a/src/corelib/io/qabstractfileengine.cpp b/src/corelib/io/qabstractfileengine.cpp index c9f218ddf5..ea5ce13b5e 100644 --- a/src/corelib/io/qabstractfileengine.cpp +++ b/src/corelib/io/qabstractfileengine.cpp @@ -779,10 +779,7 @@ bool QAbstractFileEngine::atEnd() const uchar *QAbstractFileEngine::map(qint64 offset, qint64 size, QFile::MemoryMapFlags flags) { - MapExtensionOption option; - option.offset = offset; - option.size = size; - option.flags = flags; + const MapExtensionOption option(offset, size, flags); MapExtensionReturn r; if (!extension(MapExtension, &option, &r)) return nullptr; @@ -803,8 +800,7 @@ uchar *QAbstractFileEngine::map(qint64 offset, qint64 size, QFile::MemoryMapFlag */ bool QAbstractFileEngine::unmap(uchar *address) { - UnMapExtensionOption options; - options.address = address; + const UnMapExtensionOption options(address); return extension(UnMapExtension, &options); } diff --git a/src/corelib/io/qabstractfileengine_p.h b/src/corelib/io/qabstractfileengine_p.h index 903ee1276c..b2e0b248da 100644 --- a/src/corelib/io/qabstractfileengine_p.h +++ b/src/corelib/io/qabstractfileengine_p.h @@ -147,19 +147,26 @@ public: {}; class MapExtensionOption : public ExtensionOption { + Q_DISABLE_COPY_MOVE(MapExtensionOption) public: qint64 offset; qint64 size; QFile::MemoryMapFlags flags; + constexpr MapExtensionOption(qint64 off, qint64 sz, QFile::MemoryMapFlags f) + : offset(off), size(sz), flags(f) {} }; class MapExtensionReturn : public ExtensionReturn { + Q_DISABLE_COPY_MOVE(MapExtensionReturn) public: - uchar *address; + MapExtensionReturn() = default; + uchar *address = nullptr; }; class UnMapExtensionOption : public ExtensionOption { + Q_DISABLE_COPY_MOVE(UnMapExtensionOption) public: - uchar *address; + uchar *address = nullptr; + constexpr UnMapExtensionOption(uchar *p) : address(p) {} }; virtual bool extension(Extension extension, const ExtensionOption *option = nullptr, ExtensionReturn *output = nullptr);