From 41258647d232a24adca394202b44b204409b4c9f Mon Sep 17 00:00:00 2001 From: "Robert C. Helling" Date: Fri, 1 Oct 2021 15:50:21 +0200 Subject: Don't access gasmix.o2.fraction Air is a special gas that does not contain oxygen according to gasmix.o2.fraction. If you want to use the fo2, you need to use get_o2() to treat this special case correctly. This fixes a bug when setting the MND of a gas containing 21% oxygen when o2 is considered not narcotic. Reported-by: Christoph Gruen Signed-off-by: Robert C. Helling --- stats/statsvariables.cpp | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'stats') diff --git a/stats/statsvariables.cpp b/stats/statsvariables.cpp index e5bfc63e7..7349c15dd 100644 --- a/stats/statsvariables.cpp +++ b/stats/statsvariables.cpp @@ -1499,12 +1499,12 @@ struct gas_bin_t bin_gasmix(struct gasmix mix, int size) { if (gasmix_is_air(mix)) return gas_bin_t::air(); - if (mix.o2.permille == 1000) + if (get_o2(mix) == 1000) return gas_bin_t::oxygen(); - return mix.he.permille == 0 ? - gas_bin_t::ean(mix.o2.permille / 10 / size * size) : - gas_bin_t::trimix(mix.o2.permille / 10 / size * size, - mix.he.permille / 10 / size * size); + return get_he(mix) == 0 ? + gas_bin_t::ean(get_o2(mix) / 10 / size * size) : + gas_bin_t::trimix(get_o2(mix) / 10 / size * size, + get_he(mix) / 10 / size * size); } struct GasTypeBinner : public MultiBinner { -- cgit v1.2.3-70-g09d2