summaryrefslogtreecommitdiffstats
path: root/qt-models/diveplannermodel.cpp
diff options
context:
space:
mode:
authorGravatar Miika Turkia <miika.turkia@gmail.com>2015-10-08 18:59:37 +0300
committerGravatar Dirk Hohndel <dirk@hohndel.org>2015-10-08 16:42:27 -0700
commitc0ac73a478c5407467019d61ed2536bef90edd62 (patch)
tree8742e59a87f4fcddea7523841e87461ec22aab70 /qt-models/diveplannermodel.cpp
parent640c746a1faa77ea13c93582c59b391f7e2816de (diff)
downloadsubsurface-c0ac73a478c5407467019d61ed2536bef90edd62.tar.gz
Fix a crash when editing manually added dive
I have manually added dives from an ancient version of Subsurface. Trying to edit these caused Subsurface to crash due to comparison of string of dc.model that did not exist (to a static string). And further down the execution path we were crashing as there were no samples associated with the dive. See #941 Signed-off-by: Miika Turkia <miika.turkia@gmail.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Diffstat (limited to 'qt-models/diveplannermodel.cpp')
-rw-r--r--qt-models/diveplannermodel.cpp7
1 files changed, 6 insertions, 1 deletions
diff --git a/qt-models/diveplannermodel.cpp b/qt-models/diveplannermodel.cpp
index 49fc50229..b5db3f07e 100644
--- a/qt-models/diveplannermodel.cpp
+++ b/qt-models/diveplannermodel.cpp
@@ -78,7 +78,12 @@ void DivePlannerPointsModel::loadFromDive(dive *d)
// if yes then the first sample should be marked
// if it is we only add the manually entered samples as waypoints to the diveplan
// otherwise we have to add all of them
- bool hasMarkedSamples = d->dc.sample[0].manually_entered;
+
+ bool hasMarkedSamples = false;
+
+ if (d->dc.samples)
+ hasMarkedSamples = d->dc.sample[0].manually_entered;
+
// if this dive has more than 100 samples (so it is probably a logged dive),
// average samples so we end up with a total of 100 samples.
int plansamples = d->dc.samples <= 100 ? d->dc.samples : 100;