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 <miikka.heikkinen@qt.io>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
This commit is contained in:
Christian Strømme
2022-01-31 14:17:12 +01:00
parent 25fa5540ea
commit 4a0c6f1e78

View File

@@ -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();
}