diff options
author | Berthold Stoeger <bstoeger@mail.tuwien.ac.at> | 2019-06-27 07:42:09 +0200 |
---|---|---|
committer | Dirk Hohndel <dirk@hohndel.org> | 2019-11-09 19:19:04 +0100 |
commit | 11467fa326896934a299712810b74aef6a373c6f (patch) | |
tree | d8c599a8b2b5a50e4dd189ff8ec108cac20c007d /core/qthelper.cpp | |
parent | f179ec033f39a6b774e6e6bb79f41771dfaf7e02 (diff) | |
download | subsurface-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.cpp | 7 |
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()); |