summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPaul Lemire <paul.lemire@kdab.com>2023-11-15 16:57:23 +0100
committerQt Cherry-pick Bot <cherrypick_bot@qt-project.org>2023-11-16 13:41:56 +0000
commit618f420c7833b413df1c2a682654260e3e5a6900 (patch)
tree8e1fb4dd869d883499d60acce4d933fce2fbeaf1
parentf3f007c216742263f00a5292b53ad298014e3feb (diff)
tst_qmesh: fix heap-use-after-free read errors due to wrong destruction order
Pick-to: 6.5 Task-number: QTBUG-119137 Change-Id: Ia4e23cb6fa3a16160a70f5beb6963a39bdd5e80b Reviewed-by: Mike Krus <mike.krus@kdab.com> (cherry picked from commit ff61fbf9cc38e82b53a5a2469e8d22975fe7d8c0) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
-rw-r--r--tests/auto/render/qmesh/tst_qmesh.cpp13
1 files changed, 7 insertions, 6 deletions
diff --git a/tests/auto/render/qmesh/tst_qmesh.cpp b/tests/auto/render/qmesh/tst_qmesh.cpp
index c10890872..cf5899f81 100644
--- a/tests/auto/render/qmesh/tst_qmesh.cpp
+++ b/tests/auto/render/qmesh/tst_qmesh.cpp
@@ -9,6 +9,7 @@ QT_WARNING_DISABLE_DEPRECATED
#include <Qt3DRender/qmesh.h>
#include <Qt3DRender/private/qmesh_p.h>
#include <Qt3DCore/qaspectengine.h>
+#include <Qt3DCore/private/qaspectengine_p.h>
#include <QObject>
#include <QSignalSpy>
#include <Qt3DCore/private/qscene_p.h>
@@ -89,11 +90,11 @@ private Q_SLOTS:
{
// GIVEN
TestArbiter arbiter;
+ Qt3DCore::QAspectEngine engine;
+ Qt3DCore::QScene *scene = Qt3DCore::QAspectEnginePrivate::get(&engine)->m_scene;
Qt3DRender::QMesh mesh;
- arbiter.setArbiterOnNode(&mesh);
- Qt3DCore::QAspectEngine engine;
- Qt3DCore::QScene *scene = new Qt3DCore::QScene(&engine);
+ arbiter.setArbiterOnNode(&mesh);
Qt3DCore::QNodePrivate *meshd = Qt3DCore::QNodePrivate::get(&mesh);
meshd->setScene(scene);
QCoreApplication::processEvents();
@@ -126,11 +127,11 @@ private Q_SLOTS:
{
// GIVEN
TestArbiter arbiter;
+ Qt3DCore::QAspectEngine engine;
+ Qt3DCore::QScene *scene = Qt3DCore::QAspectEnginePrivate::get(&engine)->m_scene;
Qt3DRender::QMesh mesh;
- arbiter.setArbiterOnNode(&mesh);
- Qt3DCore::QAspectEngine engine;
- Qt3DCore::QScene *scene = new Qt3DCore::QScene(&engine);
+ arbiter.setArbiterOnNode(&mesh);
Qt3DCore::QNodePrivate *meshd = Qt3DCore::QNodePrivate::get(&mesh);
meshd->setScene(scene);
QCoreApplication::processEvents();