summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/datavisualization/data/qsurfacedataproxy.cpp12
-rw-r--r--tests/auto/cpptest/q3dsurface-proxy/tst_proxy.cpp10
2 files changed, 18 insertions, 4 deletions
diff --git a/src/datavisualization/data/qsurfacedataproxy.cpp b/src/datavisualization/data/qsurfacedataproxy.cpp
index 81bbcc63..7601d021 100644
--- a/src/datavisualization/data/qsurfacedataproxy.cpp
+++ b/src/datavisualization/data/qsurfacedataproxy.cpp
@@ -475,7 +475,8 @@ void QSurfaceDataProxyPrivate::setItem(int rowIndex, int columnIndex, const QSur
int QSurfaceDataProxyPrivate::addRow(QSurfaceDataRow *row)
{
- Q_ASSERT(m_dataArray->at(0)->size() == row->size());
+ Q_ASSERT(m_dataArray->isEmpty()
+ || m_dataArray->at(0)->size() == row->size());
int currentSize = m_dataArray->size();
m_dataArray->append(row);
return currentSize;
@@ -485,7 +486,8 @@ int QSurfaceDataProxyPrivate::addRows(const QSurfaceDataArray &rows)
{
int currentSize = m_dataArray->size();
for (int i = 0; i < rows.size(); i++) {
- Q_ASSERT(m_dataArray->at(0)->size() == rows.at(i)->size());
+ Q_ASSERT(m_dataArray->isEmpty()
+ || m_dataArray->at(0)->size() == rows.at(i)->size());
m_dataArray->append(rows.at(i));
}
return currentSize;
@@ -494,7 +496,8 @@ int QSurfaceDataProxyPrivate::addRows(const QSurfaceDataArray &rows)
void QSurfaceDataProxyPrivate::insertRow(int rowIndex, QSurfaceDataRow *row)
{
Q_ASSERT(rowIndex >= 0 && rowIndex <= m_dataArray->size());
- Q_ASSERT(m_dataArray->at(0)->size() == row->size());
+ Q_ASSERT(m_dataArray->isEmpty()
+ || m_dataArray->at(0)->size() == row->size());
m_dataArray->insert(rowIndex, row);
}
@@ -503,7 +506,8 @@ void QSurfaceDataProxyPrivate::insertRows(int rowIndex, const QSurfaceDataArray
Q_ASSERT(rowIndex >= 0 && rowIndex <= m_dataArray->size());
for (int i = 0; i < rows.size(); i++) {
- Q_ASSERT(m_dataArray->at(0)->size() == rows.at(i)->size());
+ Q_ASSERT(m_dataArray->isEmpty()
+ || m_dataArray->at(0)->size() == rows.at(i)->size());
m_dataArray->insert(rowIndex++, rows.at(i));
}
}
diff --git a/tests/auto/cpptest/q3dsurface-proxy/tst_proxy.cpp b/tests/auto/cpptest/q3dsurface-proxy/tst_proxy.cpp
index 7c793910..16025964 100644
--- a/tests/auto/cpptest/q3dsurface-proxy/tst_proxy.cpp
+++ b/tests/auto/cpptest/q3dsurface-proxy/tst_proxy.cpp
@@ -45,6 +45,7 @@ private slots:
void initialProperties();
void initializeProperties();
+ void initialRow();
private:
QSurfaceDataProxy *m_proxy;
@@ -103,5 +104,14 @@ void tst_proxy::initializeProperties()
QCOMPARE(m_proxy->rowCount(), 2);
}
+void tst_proxy::initialRow()
+{
+ QSurfaceDataProxy proxy;
+ QSurfaceDataRow row{QSurfaceDataItem{QVector3D{0, 0, 0}},
+ QSurfaceDataItem{QVector3D{1, 1, 1}}};
+ proxy.addRow(new QSurfaceDataRow(row));
+ proxy.addRow(new QSurfaceDataRow(row));
+}
+
QTEST_MAIN(tst_proxy)
#include "tst_proxy.moc"