summaryrefslogtreecommitdiffstats
path: root/profile-widget
diff options
context:
space:
mode:
authorGravatar Berthold Stoeger <bstoeger@mail.tuwien.ac.at>2019-06-27 07:52:15 +0200
committerGravatar Dirk Hohndel <dirk@hohndel.org>2019-11-09 19:19:04 +0100
commitff653f721c01b98587236c0b4e0cf662cb3a33a6 (patch)
tree1f294f60346ba6b1320ed4327cf218b1589e557f /profile-widget
parent11467fa326896934a299712810b74aef6a373c6f (diff)
downloadsubsurface-ff653f721c01b98587236c0b4e0cf662cb3a33a6.tar.gz
Cylinders: dynamically allocate cylinder arrays
When keeping track of cylinder related data, the code was using static arrays of MAX_CYLINDERS length. If we want to use dynamically sized cylinder arrays, these have to be dynamically allocated. In C++ code, this is trivial: simply replace the C-style arrays by std::vector<>. Don't use QVector, as no reference counting or COW semantics are needed here. These are purely local and unshared arrays. Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
Diffstat (limited to 'profile-widget')
-rw-r--r--profile-widget/diveprofileitem.cpp14
1 files changed, 7 insertions, 7 deletions
diff --git a/profile-widget/diveprofileitem.cpp b/profile-widget/diveprofileitem.cpp
index 521e3fb82..da3028ebb 100644
--- a/profile-widget/diveprofileitem.cpp
+++ b/profile-widget/diveprofileitem.cpp
@@ -659,9 +659,9 @@ void DiveGasPressureItem::modelDataChanged(const QModelIndex &topLeft, const QMo
if (!shouldCalculateStuff(topLeft, bottomRight))
return;
- int plotted_cyl[MAX_CYLINDERS] = { false, };
- int last_plotted[MAX_CYLINDERS] = { 0, };
- QPolygonF poly[MAX_CYLINDERS];
+ std::vector<int> plotted_cyl(MAX_CYLINDERS, false);
+ std::vector<int> last_plotted(MAX_CYLINDERS, 0);
+ std::vector<QPolygonF> poly(MAX_CYLINDERS);
QPolygonF boundingPoly;
polygons.clear();
@@ -707,9 +707,9 @@ void DiveGasPressureItem::modelDataChanged(const QModelIndex &topLeft, const QMo
qDeleteAll(texts);
texts.clear();
- int seen_cyl[MAX_CYLINDERS] = { false, };
- int last_pressure[MAX_CYLINDERS] = { 0, };
- int last_time[MAX_CYLINDERS] = { 0, };
+ std::vector<int> seen_cyl(MAX_CYLINDERS, false);
+ std::vector<int> last_pressure(MAX_CYLINDERS, 0);
+ std::vector<int> last_time(MAX_CYLINDERS, 0);
// These are offset values used to print the gas lables and pressures on a
// dive profile at appropriate Y-coordinates. We alternate aligning the
@@ -720,7 +720,7 @@ void DiveGasPressureItem::modelDataChanged(const QModelIndex &topLeft, const QMo
// pressures.
QFlags<Qt::AlignmentFlag> alignVar = Qt::AlignTop;
- QFlags<Qt::AlignmentFlag> align[MAX_CYLINDERS];
+ std::vector<QFlags<Qt::AlignmentFlag>> align(MAX_CYLINDERS);
double axisRange = (vAxis->maximum() - vAxis->minimum())/1000; // Convert axis pressure range to bar
double axisLog = log10(log10(axisRange));