From ce420d7720213aa0f255f07ee04e243f4c1c1242 Mon Sep 17 00:00:00 2001 From: Stefan Fuchs Date: Sat, 18 Mar 2017 20:36:46 +0100 Subject: Prevent overflow in minimum gas calculation For the "crazy" long and deep dives in "TestPlan" an overflow happened here. Rearranged the calculation to have more margin. Signed-off-by: Stefan Fuchs --- core/planner.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/core/planner.c b/core/planner.c index 1564643d9..aa77f11e8 100644 --- a/core/planner.c +++ b/core/planner.c @@ -899,9 +899,9 @@ static void add_plan_to_notes(struct diveplan *diveplan, struct dive *dive, bool && dive->dc.divemode == OC && decoMode() != RECREATIONAL) { /* Calculate minimum gas volume. */ volume_t mingasv; - mingasv.mliter = lrint(prefs.problemsolvingtime * prefs.bottomsac * prefs.sacfactor / 100.0 + mingasv.mliter = lrint(prefs.sacfactor / 100.0 * prefs.problemsolvingtime * prefs.bottomsac * depth_to_bar(lastbottomdp->depth.mm, dive) - + cyl->deco_gas_used.mliter * prefs.sacfactor / 100.0); + + prefs.sacfactor / 100.0 * cyl->deco_gas_used.mliter); /* Calculate minimum gas pressure for cyclinder. */ pressure_t mingasp; mingasp.mbar = lrint(isothermal_pressure(&cyl->gasmix, 1.0, -- cgit v1.2.3-70-g09d2