diff options
author | Berthold Stoeger <bstoeger@mail.tuwien.ac.at> | 2019-06-27 07:52:15 +0200 |
---|---|---|
committer | Dirk Hohndel <dirk@hohndel.org> | 2019-11-09 19:19:04 +0100 |
commit | ff653f721c01b98587236c0b4e0cf662cb3a33a6 (patch) | |
tree | 1f294f60346ba6b1320ed4327cf218b1589e557f /profile-widget/diveprofileitem.cpp | |
parent | 11467fa326896934a299712810b74aef6a373c6f (diff) | |
download | subsurface-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/diveprofileitem.cpp')
-rw-r--r-- | profile-widget/diveprofileitem.cpp | 14 |
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)); |