diff options
author | Marc Mutz <marc.mutz@kdab.com> | 2019-08-27 09:12:00 +0200 |
---|---|---|
committer | Marc Mutz <marc.mutz@kdab.com> | 2019-08-28 07:25:56 +0200 |
commit | 61d23410b0637d8e17efd195addd8fc6078c88cd (patch) | |
tree | 57dd45791a3f4bb59a2830b2681b5148e9599e05 /src/render/renderstates | |
parent | a1ec8d49aac3830194f37f5ec95acdb93aad3aad (diff) |
QRasterMode: de-inline dtor
By making the destructor (usually the first non-inline, non-pure,
virtual function, and therefore the trigger for most compilers to emit
the vtable and type_info structures for the class in that TU)
out-of-line, vtables and, more importantly, type_info structures for
the class are pinned to a single TU. This prevents false negative
dynamic_cast and catch evaluation.
Fixes: QTBUG-77860
Change-Id: I4b2a1f0627032aa6e714166b91a9898b592b4eb8
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
Diffstat (limited to 'src/render/renderstates')
-rw-r--r-- | src/render/renderstates/qrastermode.cpp | 6 | ||||
-rw-r--r-- | src/render/renderstates/qrastermode.h | 2 |
2 files changed, 7 insertions, 1 deletions
diff --git a/src/render/renderstates/qrastermode.cpp b/src/render/renderstates/qrastermode.cpp index 065a1ca8c..fc255b717 100644 --- a/src/render/renderstates/qrastermode.cpp +++ b/src/render/renderstates/qrastermode.cpp @@ -50,6 +50,12 @@ QRasterMode::QRasterMode(QNode *parent) { } +/*! + \internal +*/ +QRasterMode::~QRasterMode() + = default; + QRasterMode::RasterMode QRasterMode::rasterMode() const { Q_D(const QRasterMode); diff --git a/src/render/renderstates/qrastermode.h b/src/render/renderstates/qrastermode.h index d9eb5cb05..d460fa10c 100644 --- a/src/render/renderstates/qrastermode.h +++ b/src/render/renderstates/qrastermode.h @@ -71,7 +71,7 @@ public: Q_ENUM(FaceMode) // LCOV_EXCL_LINE explicit QRasterMode(Qt3DCore::QNode *parent = nullptr); - ~QRasterMode() = default; + ~QRasterMode(); RasterMode rasterMode() const; FaceMode faceMode() const; |