[PATCH] Planner: don't abort when saving a dive

Anton Lundin glance at acc.umu.se
Thu Dec 19 13:11:31 UTC 2013


The fix for dereferencing a null pointer from me was a bad fix that
broke the possibility of saving a planned dive as a dive.

This is a better fix to not dereference a null pointer and be able to
save the plan again.

Signed-off-by: Anton Lundin <glance at acc.umu.se>
---
 qt-ui/diveplanner.cpp | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/qt-ui/diveplanner.cpp b/qt-ui/diveplanner.cpp
index 6fb9ece..223d9d6 100644
--- a/qt-ui/diveplanner.cpp
+++ b/qt-ui/diveplanner.cpp
@@ -1422,8 +1422,6 @@ void DivePlannerPointsModel::createTemporaryPlan()
 		lastIndex = i;
 		plan_add_segment(&diveplan, deltaT, p.depth, p.o2, p.he, p.po2);
 	}
-	if (!diveplan.dp)
-		return;
 	char *cache = NULL;
 	tempDive = NULL;
 	const char *errorString = NULL;
@@ -1432,7 +1430,10 @@ void DivePlannerPointsModel::createTemporaryPlan()
 		cylinder_t *cyl = &stagingDive->cylinder[i];
 		if (cyl->depth.mm) {
 			dp = create_dp(0, cyl->depth.mm, cyl->gasmix.o2.permille, cyl->gasmix.he.permille, 0);
-			dp->next = diveplan.dp->next;
+			if (diveplan.dp)
+				dp->next = diveplan.dp->next;
+			else
+				dp->next = NULL;
 			diveplan.dp->next = dp;
 		}
 	}
-- 
1.8.3.2



More information about the subsurface mailing list