diff options
author | Miika Turkia <miika.turkia@gmail.com> | 2015-10-08 18:59:37 +0300 |
---|---|---|
committer | Dirk Hohndel <dirk@hohndel.org> | 2015-10-08 16:42:27 -0700 |
commit | c0ac73a478c5407467019d61ed2536bef90edd62 (patch) | |
tree | 8742e59a87f4fcddea7523841e87461ec22aab70 /qt-models/diveplannermodel.cpp | |
parent | 640c746a1faa77ea13c93582c59b391f7e2816de (diff) | |
download | subsurface-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.cpp | 7 |
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; |