From 9dd26a00e86eb0c7e5f0f9650f021b24e73d67df Mon Sep 17 00:00:00 2001 From: Dirk Hohndel Date: Tue, 1 Dec 2015 15:20:32 -0800 Subject: Profile: avoid potential crash If things go as planned, then the length of the polygon is the same as the number of rows in the model. Turns out when running Subsurface-mobile on Android that simple truth doesn't seem to be correct. Most of the time the polygon seems to have twice as many elements as the model. But a few times I ended up in here with a polygon that had fewer elements than the model. And then things crash. This simply avoids the crash. Signed-off-by: Dirk Hohndel --- profile-widget/diveprofileitem.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/profile-widget/diveprofileitem.cpp b/profile-widget/diveprofileitem.cpp index ca87f4ed0..849a9d3de 100644 --- a/profile-widget/diveprofileitem.cpp +++ b/profile-widget/diveprofileitem.cpp @@ -135,7 +135,8 @@ void DiveProfileItem::paint(QPainter *painter, const QStyleOptionGraphicsItem *o QModelIndex colorIndex = dataModel->index(i, DivePlotDataModel::COLOR); pen.setBrush(QBrush(colorIndex.data(Qt::BackgroundRole).value())); painter->setPen(pen); - painter->drawLine(poly[i - 1], poly[i]); + if (i < poly.count()) + painter->drawLine(poly[i - 1], poly[i]); } painter->restore(); } -- cgit v1.2.3-70-g09d2