summaryrefslogtreecommitdiffstats
path: root/src/datavisualization/data/qsurfacedataproxy.cpp
diff options
context:
space:
mode:
authorHeikkinen Miikka <miikka.heikkinen@digia.com>2013-09-20 12:51:17 +0300
committerMiikka Heikkinen <miikka.heikkinen@digia.com>2013-09-20 12:56:27 +0300
commitd57aabe85e6b4012f93348884df16262889906d8 (patch)
tree4890063e229d89afbf5ba140068ecd4d656ccb58 /src/datavisualization/data/qsurfacedataproxy.cpp
parent0d74bd964a2f63c303cc03d83c1ae02991b8e0ec (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.cpp21
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