summaryrefslogtreecommitdiffstats
path: root/core/qthelper.cpp
diff options
context:
space:
mode:
authorGravatar Berthold Stoeger <bstoeger@mail.tuwien.ac.at>2019-06-27 07:42:09 +0200
committerGravatar Dirk Hohndel <dirk@hohndel.org>2019-11-09 19:19:04 +0100
commit11467fa326896934a299712810b74aef6a373c6f (patch)
treed8c599a8b2b5a50e4dd189ff8ec108cac20c007d /core/qthelper.cpp
parentf179ec033f39a6b774e6e6bb79f41771dfaf7e02 (diff)
downloadsubsurface-11467fa326896934a299712810b74aef6a373c6f.tar.gz
Core: dynamically allocate the result of get_gas_used()
get_gas_used() returns the volume of used gases. Currently, an array with MAX_CYLINDERS is passed in. If we want to make the number of cylinders dynamic, the function must use an arbitrarilly sized array. Therefore, return a dynamically allocated array and free it in the caller. Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
Diffstat (limited to 'core/qthelper.cpp')
-rw-r--r--core/qthelper.cpp7
1 files changed, 4 insertions, 3 deletions
diff --git a/core/qthelper.cpp b/core/qthelper.cpp
index 8082db742..700854ebc 100644
--- a/core/qthelper.cpp
+++ b/core/qthelper.cpp
@@ -388,13 +388,14 @@ QVector<QPair<QString, int>> selectedDivesGasUsed()
for_each_dive (i, d) {
if (!d->selected)
continue;
- volume_t diveGases[MAX_CYLINDERS] = {};
- get_gas_used(d, diveGases);
- for (j = 0; j < MAX_CYLINDERS; j++)
+ volume_t *diveGases = get_gas_used(d);
+ for (j = 0; j < MAX_CYLINDERS; j++) {
if (diveGases[j].mliter) {
QString gasName = gasname(d->cylinder[j].gasmix);
gasUsed[gasName] += diveGases[j].mliter;
}
+ }
+ free(diveGases);
}
QVector<QPair<QString, int>> gasUsedOrdered;
gasUsedOrdered.reserve(gasUsed.size());