diff options
author | Tomi Korpipaa <tomi.korpipaa@qt.io> | 2022-12-05 14:00:23 +0200 |
---|---|---|
committer | Tomi Korpipaa <tomi.korpipaa@qt.io> | 2022-12-05 14:36:41 +0200 |
commit | 011abfd74404059e887453258f1c4d1b1095d80a (patch) | |
tree | 8287faf3a637beb9b9879cc1f4b96c4043881533 /src/datavisualization | |
parent | d63c95887d3d9aa4d4a4b2f67cb0ec2531a6995e (diff) |
Fix app start - stop memory leaks in Bars3D
Change-Id: I507be70edd2426a01f5de0ca781e6a13cf608bd1
Reviewed-by: Kwanghyo Park <kwanghyo.park@qt.io>
Reviewed-by: Dilek Akcay <dilek.akcay@qt.io>
Reviewed-by: Tomi Korpipää <tomi.korpipaa@qt.io>
Diffstat (limited to 'src/datavisualization')
4 files changed, 7 insertions, 4 deletions
diff --git a/src/datavisualization/engine/abstract3dcontroller_p.h b/src/datavisualization/engine/abstract3dcontroller_p.h index e98a711f..1251e38c 100644 --- a/src/datavisualization/engine/abstract3dcontroller_p.h +++ b/src/datavisualization/engine/abstract3dcontroller_p.h @@ -165,7 +165,7 @@ private: qreal m_reflectivity; QLocale m_locale; QVector3D m_queriedGraphPosition; - bool m_graphPositionQueryPending; + bool m_graphPositionQueryPending = false; protected: Q3DScene *m_scene; diff --git a/src/datavisualization/engine/axishelper_p.h b/src/datavisualization/engine/axishelper_p.h index 6520c9be..016b8f7e 100644 --- a/src/datavisualization/engine/axishelper_p.h +++ b/src/datavisualization/engine/axishelper_p.h @@ -75,7 +75,7 @@ private: float m_min; float m_max; - bool m_reversed; + bool m_reversed = false; }; QT_END_NAMESPACE diff --git a/src/datavisualization/qml/qquickbarseriesvisualizer.cpp b/src/datavisualization/qml/qquickbarseriesvisualizer.cpp index 50869af7..4a8549e9 100644 --- a/src/datavisualization/qml/qquickbarseriesvisualizer.cpp +++ b/src/datavisualization/qml/qquickbarseriesvisualizer.cpp @@ -39,8 +39,6 @@ QQuickBarSeriesVisualizer::~QQuickBarSeriesVisualizer() if (m_instancing) delete m_instancing; - if (m_seriesRootItem) - delete m_seriesRootItem; } void QQuickBarSeriesVisualizer::handleSeriesMeshChanged(QAbstract3DSeries::Mesh mesh) @@ -381,12 +379,14 @@ void QQuickBarSeriesVisualizer::updateItemMaterial(QQuick3DModel *item, bool use if (materialsRef.size()) { if (!qobject_cast<QQuick3DPrincipledMaterial *>(materialsRef.at(0))) { auto principledMaterial = new QQuick3DPrincipledMaterial(); + principledMaterial->setParent(this); auto oldCustomMaterial = materialsRef.at(0); materialsRef.replace(0, principledMaterial); delete oldCustomMaterial; } } else { auto principledMaterial = new QQuick3DPrincipledMaterial(); + principledMaterial->setParent(this); materialsRef.append(principledMaterial); } } else { @@ -527,6 +527,7 @@ void QQuickBarSeriesVisualizer::updatePrincipledMaterial(QQuick3DModel *model, c QQuick3DTexture *QQuickBarSeriesVisualizer::createTexture() { QQuick3DTexture *texture = new QQuick3DTexture(); + texture->setParent(this); texture->setRotationUV(-90.0f); texture->setHorizontalTiling(QQuick3DTexture::ClampToEdge); texture->setVerticalTiling(QQuick3DTexture::ClampToEdge); diff --git a/src/datavisualization/qml/qquickdatavisbars.cpp b/src/datavisualization/qml/qquickdatavisbars.cpp index 28d26682..db48d662 100644 --- a/src/datavisualization/qml/qquickdatavisbars.cpp +++ b/src/datavisualization/qml/qquickdatavisbars.cpp @@ -197,6 +197,7 @@ void QQuickDataVisBars::addSeries(QBar3DSeries *series) { m_barsController->addSeries(series); auto visualizer = new QQuickBarSeriesVisualizer(); + visualizer->setParent(this); visualizer->m_controller = m_barsController; visualizer->m_qml = this; visualizer->m_dataVisBars = this; @@ -400,6 +401,7 @@ void QQuickDataVisBars::synchData() if (!materialsRefF.size()) { bgMatFloor = new QQuick3DPrincipledMaterial(); + bgMatFloor->setParent(this); bgMatFloor->setRoughness(.3f); bgMatFloor->setEmissiveFactor(QVector3D(.075f, .075f, .075f)); materialsRefF.append(bgMatFloor); |