diff options
author | Laszlo Agocs <laszlo.agocs@qt.io> | 2021-09-19 10:50:17 +0200 |
---|---|---|
committer | Laszlo Agocs <laszlo.agocs@qt.io> | 2021-09-20 12:25:37 +0200 |
commit | 481bc82d5931d5c715c2e889da6f249aa88057de (patch) | |
tree | 2a7973d6318142d7815474dacf4245811a22619b /src/gui | |
parent | b4bb3a5415e44bccee08f3aa5423f217629e158b (diff) |
rhi: Remove Q_RELOCATABLE_TYPE for types with QVLA in them
QVLA itself is non-relocatable due to self references. (ptr pointing
to array[Prealloc] as long as capacity < Prealloc)
Seems we shot ourselves in the foot in multiple places with this.
Pick-to: 6.2 6.2.0
Fixes: QTBUG-96619
Change-Id: I57a2ce539b671326cd352dbe57a1f3d4c46a6456
Reviewed-by: Tobias Koenig <tobias.koenig@kdab.com>
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
Diffstat (limited to 'src/gui')
-rw-r--r-- | src/gui/rhi/qrhi_p.h | 8 | ||||
-rw-r--r-- | src/gui/rhi/qrhi_p_p.h | 3 |
2 files changed, 1 insertions, 10 deletions
diff --git a/src/gui/rhi/qrhi_p.h b/src/gui/rhi/qrhi_p.h index acd04f299c..17b170203b 100644 --- a/src/gui/rhi/qrhi_p.h +++ b/src/gui/rhi/qrhi_p.h @@ -284,8 +284,6 @@ private: friend Q_GUI_EXPORT QDebug operator<<(QDebug, const QRhiVertexInputLayout &); }; -Q_DECLARE_TYPEINFO(QRhiVertexInputLayout, Q_RELOCATABLE_TYPE); - Q_GUI_EXPORT bool operator==(const QRhiVertexInputLayout &a, const QRhiVertexInputLayout &b) noexcept; Q_GUI_EXPORT bool operator!=(const QRhiVertexInputLayout &a, const QRhiVertexInputLayout &b) noexcept; Q_GUI_EXPORT size_t qHash(const QRhiVertexInputLayout &v, size_t seed = 0) noexcept; @@ -526,8 +524,6 @@ private: QRhiTexture *m_depthTexture = nullptr; }; -Q_DECLARE_TYPEINFO(QRhiTextureRenderTargetDescription, Q_RELOCATABLE_TYPE); - class Q_GUI_EXPORT QRhiTextureSubresourceUploadDescription { public: @@ -609,8 +605,6 @@ private: QVarLengthArray<QRhiTextureUploadEntry, 16> m_entries; }; -Q_DECLARE_TYPEINFO(QRhiTextureUploadDescription, Q_RELOCATABLE_TYPE); - class Q_GUI_EXPORT QRhiTextureCopyDescription { public: @@ -1470,7 +1464,7 @@ struct Q_GUI_EXPORT QRhiReadbackResult QRhiTexture::Format format; QSize pixelSize; QByteArray data; -}; // non-movable due to the std::function +}; struct Q_GUI_EXPORT QRhiBufferReadbackResult { diff --git a/src/gui/rhi/qrhi_p_p.h b/src/gui/rhi/qrhi_p_p.h index 89dd7b8e44..0dcb8c1f6e 100644 --- a/src/gui/rhi/qrhi_p_p.h +++ b/src/gui/rhi/qrhi_p_p.h @@ -519,9 +519,6 @@ public: static QRhiResourceUpdateBatchPrivate *get(QRhiResourceUpdateBatch *b) { return b->d; } }; -Q_DECLARE_TYPEINFO(QRhiResourceUpdateBatchPrivate::BufferOp, Q_RELOCATABLE_TYPE); -Q_DECLARE_TYPEINFO(QRhiResourceUpdateBatchPrivate::TextureOp, Q_RELOCATABLE_TYPE); - template<typename T> struct QRhiBatchedBindings { |