diff options
author | Heikkinen Miikka <miikka.heikkinen@digia.com> | 2013-09-20 12:51:17 +0300 |
---|---|---|
committer | Miikka Heikkinen <miikka.heikkinen@digia.com> | 2013-09-20 12:56:27 +0300 |
commit | d57aabe85e6b4012f93348884df16262889906d8 (patch) | |
tree | 4890063e229d89afbf5ba140068ecd4d656ccb58 /src/datavisualization/data/qsurfacedataproxy.cpp | |
parent | 0d74bd964a2f63c303cc03d83c1ae02991b8e0ec (diff) |
Fixed Valgrind reported memory issues.
Change-Id: I9ccb460b5cceb969827ede510b3c05d07467358d
Reviewed-by: Tomi Korpipää <tomi.korpipaa@digia.com>
Diffstat (limited to 'src/datavisualization/data/qsurfacedataproxy.cpp')
-rw-r--r-- | src/datavisualization/data/qsurfacedataproxy.cpp | 21 |
1 files changed, 17 insertions, 4 deletions
diff --git a/src/datavisualization/data/qsurfacedataproxy.cpp b/src/datavisualization/data/qsurfacedataproxy.cpp index 8471bb7e..30cc84f1 100644 --- a/src/datavisualization/data/qsurfacedataproxy.cpp +++ b/src/datavisualization/data/qsurfacedataproxy.cpp @@ -330,8 +330,7 @@ QSurfaceDataProxyPrivate::QSurfaceDataProxyPrivate(QSurfaceDataProxy *q) QSurfaceDataProxyPrivate::~QSurfaceDataProxyPrivate() { - m_dataArray->clear(); - delete m_dataArray; + clearArray(); } bool QSurfaceDataProxyPrivate::resetArray(QSurfaceDataArray *newArray, qreal minValueRows, @@ -341,8 +340,7 @@ bool QSurfaceDataProxyPrivate::resetArray(QSurfaceDataArray *newArray, qreal min if (!m_dataArray->size() && (!newArray || !newArray->size())) return false; - m_dataArray->clear(); - delete m_dataArray; + clearArray(); if (newArray) { for (int i = 0; i < newArray->size(); i++) { @@ -508,5 +506,20 @@ void QSurfaceDataProxyPrivate::limitValues(QVector3D &minValues, QVector3D &maxV maxValues.setZ(m_maxValueRows); } +void QSurfaceDataProxyPrivate::clearRow(int rowIndex) +{ + if (m_dataArray->at(rowIndex)) { + delete m_dataArray->at(rowIndex); + (*m_dataArray)[rowIndex] = 0; + } +} + +void QSurfaceDataProxyPrivate::clearArray() +{ + for (int i = 0; i < m_dataArray->size(); i++) + clearRow(i); + m_dataArray->clear(); + delete m_dataArray; +} QT_DATAVISUALIZATION_END_NAMESPACE |