Cleanup: avoid resource leak in dive planner model

Found by Coverity. Fixes CID 350121

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
Dirk Hohndel 2019-10-26 21:11:39 -04:00
parent 4f9783ff60
commit c9a39bb08e

View file

@ -1014,8 +1014,10 @@ void DivePlannerPointsModel::computeVariationsFreeDeco(struct diveplan *original
void DivePlannerPointsModel::computeVariations(struct diveplan *original_plan, const struct deco_state *previous_ds) void DivePlannerPointsModel::computeVariations(struct diveplan *original_plan, const struct deco_state *previous_ds)
{ {
// nothing to do unless there's an original plan
if (!original_plan)
return;
// bool oldRecalc = setRecalc(false);
struct dive *dive = alloc_dive(); struct dive *dive = alloc_dive();
copy_dive(&displayed_dive, dive); copy_dive(&displayed_dive, dive);
struct decostop original[60], deeper[60], shallower[60], shorter[60], longer[60]; struct decostop original[60], deeper[60], shallower[60], shorter[60], longer[60];
@ -1024,10 +1026,6 @@ void DivePlannerPointsModel::computeVariations(struct diveplan *original_plan, c
struct divedatapoint *last_segment; struct divedatapoint *last_segment;
struct deco_state ds = *previous_ds; struct deco_state ds = *previous_ds;
if (!original_plan)
return;
if (in_planner() && prefs.display_variations && decoMode() != RECREATIONAL) { if (in_planner() && prefs.display_variations && decoMode() != RECREATIONAL) {
int my_instance = ++instanceCounter; int my_instance = ++instanceCounter;
cache_deco_state(&ds, &save); cache_deco_state(&ds, &save);