mirror of
https://github.com/subsurface/subsurface.git
synced 2024-11-30 22:20:21 +00:00
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>
This commit is contained in:
parent
640c746a1f
commit
c0ac73a478
2 changed files with 7 additions and 2 deletions
|
@ -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;
|
||||
|
|
|
@ -798,7 +798,7 @@ void MainWindow::on_actionEditDive_triggered()
|
|||
}
|
||||
|
||||
const bool isTripEdit = dive_list()->selectedTrips().count() >= 1;
|
||||
if (!current_dive || isTripEdit || strcmp(current_dive->dc.model, "manually added dive")) {
|
||||
if (!current_dive || isTripEdit || (current_dive->dc.model && strcmp(current_dive->dc.model, "manually added dive"))) {
|
||||
QMessageBox::warning(this, tr("Warning"), tr("Trying to edit a dive that's not a manually added dive."));
|
||||
return;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue