From 4a0c6f1e787c8ba2e1d46ecd155f3817ccc93802 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christian=20Str=C3=B8mme?= Date: Mon, 31 Jan 2022 14:17:12 +0100 Subject: Fix invalid usage of temporary data Make sure the return value stays valid in the scope we're using it in. Change-Id: Ifa8a7ef88c9189ba90f5adb699b284f381a59488 Reviewed-by: Miikka Heikkinen Reviewed-by: --- share/qtcreator/qml/qmlpuppet/qml2puppet/editor3d/mousearea3d.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/share/qtcreator/qml/qmlpuppet/qml2puppet/editor3d/mousearea3d.cpp b/share/qtcreator/qml/qmlpuppet/qml2puppet/editor3d/mousearea3d.cpp index a4e950b238b..cee091531a7 100644 --- a/share/qtcreator/qml/qmlpuppet/qml2puppet/editor3d/mousearea3d.cpp +++ b/share/qtcreator/qml/qmlpuppet/qml2puppet/editor3d/mousearea3d.cpp @@ -729,7 +729,8 @@ void MouseArea3D::applyFreeRotation(QQuick3DNode *node, const QVector3D &startRo if (dragVector.length() < 0.001f) return; - const float *dataPtr(sceneTransform().data()); + const auto &transform = sceneTransform(); + const float *dataPtr(transform.data()); QVector3D xAxis = QVector3D(dataPtr[0], dataPtr[1], dataPtr[2]).normalized(); QVector3D yAxis = QVector3D(dataPtr[4], dataPtr[5], dataPtr[6]).normalized(); QVector3D finalAxis = (dragVector.x() * yAxis + dragVector.y() * xAxis); @@ -1029,7 +1030,8 @@ void MouseArea3D::setHovering(bool enable) QVector3D MouseArea3D::getNormal() const { - const float *dataPtr(sceneTransform().data()); + const auto &transform = sceneTransform(); + const float *dataPtr(transform.data()); return QVector3D(dataPtr[8], dataPtr[9], dataPtr[10]).normalized(); } -- cgit v1.2.3