summaryrefslogtreecommitdiffstats
path: root/core/profile.c
diff options
context:
space:
mode:
authorGravatar Rick Walsh <rickmwalsh@gmail.com>2017-11-03 08:01:52 +1100
committerGravatar Robert C. Helling <helling@atdotde.de>2017-11-08 15:22:32 +0100
commit8e1ea8cd144ee216dae1aca2d016118d83a0d8bb (patch)
tree38c4848eaf11f6312950469d52fb94e8140affd8 /core/profile.c
parentb3b787db9430ca6d974a167d23b2ffa1ad3d2b2a (diff)
downloadsubsurface-8e1ea8cd144ee216dae1aca2d016118d83a0d8bb.tar.gz
VPMB profile: remember deco_time when restoring deco_state
Otherwise the CVA won't iterate properly. Signed-off-by: Rick Walsh <rickmwalsh@gmail.com>
Diffstat (limited to 'core/profile.c')
-rw-r--r--core/profile.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/core/profile.c b/core/profile.c
index d7f110db3..631aaa8b8 100644
--- a/core/profile.c
+++ b/core/profile.c
@@ -1077,6 +1077,7 @@ void calculate_deco_information(struct dive *dive, struct divecomputer *dc, stru
}
}
if (decoMode() == VPMB && !in_planner()) {
+ int this_deco_time;
prev_deco_time = deco_state->deco_time;
// Do we need to update deco_time?
if (final_tts > 0)
@@ -1093,7 +1094,9 @@ void calculate_deco_information(struct dive *dive, struct divecomputer *dc, stru
first_ceiling = 0;
first_iteration = false;
count_iteration ++;
+ this_deco_time = deco_state->deco_time;
restore_deco_state(cache_data_initial, true);
+ deco_state->deco_time = this_deco_time;
} else {
// With Buhlmann iterating isn't needed. This makes the while condition false.
prev_deco_time = deco_state->deco_time = 0;