diff options
author | Berthold Stoeger <bstoeger@mail.tuwien.ac.at> | 2019-08-06 11:19:32 +0200 |
---|---|---|
committer | Dirk Hohndel <dirk@hohndel.org> | 2019-08-08 16:26:31 -0700 |
commit | 00944f7a02c98bd281778218bccc592896386f14 (patch) | |
tree | ff0ac130a72c9e1be48d28aafc9afa5a21b022ab /core/planner.c | |
parent | 6ce4aeb04ee4a01af43f18ef8b76224402cb5c3b (diff) | |
download | subsurface-00944f7a02c98bd281778218bccc592896386f14.tar.gz |
Core: pass dive, cylinder-id to fill_default_cylinder
The fill_default_cylinder() function calculated the MOD based
on the currently displayed dive. This does not seem to make sense:
- When importing dives, why would we care about the altitude and
salinity of the currently displayed dive, possibly from a different
trip.
- The planner is supposed to be thread-safe and should not touch
global variables.
Of course this means that the importing-functions have to fill
out altitude and salinity before creating the default cylinder,
but this is their problem. For a freshly created dive they will
get the default values, which still seems less random than the
values from the displayed dive.
Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
Diffstat (limited to 'core/planner.c')
-rw-r--r-- | core/planner.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/core/planner.c b/core/planner.c index 407418553..9cf4fc6ec 100644 --- a/core/planner.c +++ b/core/planner.c @@ -178,9 +178,10 @@ static int tissue_at_end(struct deco_state *ds, struct dive *dive, struct deco_s /* if a default cylinder is set, use that */ -void fill_default_cylinder(cylinder_t *cyl) +void fill_default_cylinder(struct dive *dive, int idx) { const char *cyl_name = prefs.default_cylinder; + cylinder_t *cyl = &dive->cylinder[idx]; struct tank_info_t *ti = tank_info; pressure_t pO2 = {.mbar = 1600}; @@ -204,7 +205,7 @@ void fill_default_cylinder(cylinder_t *cyl) cyl->type.size.mliter = lrint(cuft_to_l(ti->cuft) * 1000 / bar_to_atm(psi_to_bar(ti->psi))); } // MOD of air - cyl->depth = gas_mod(cyl->gasmix, pO2, &displayed_dive, 1); + cyl->depth = gas_mod(cyl->gasmix, pO2, dive, 1); } /* calculate the new end pressure of the cylinder, based on its current end pressure and the |