From b286ea638c8ce468cf9c1a1b5037867acb5d6fe4 Mon Sep 17 00:00:00 2001 From: Linus Torvalds Date: Sat, 9 Feb 2013 10:23:15 +1100 Subject: Simplify/clarify the get_surface_pressure_in_mbar() function Instead of maintaining a rolling average and re-calculating it at each stage, just calculate the surface_pressure average the natural way: as the sum divided by the number of entries. This results in a single rounding, rather than doing rounding multiple times and possibly rounding wrong as a result. Not that we care all that deeply about the LSB of the mbar value, but the code is simpler and more obvious this way too. Signed-off-by: Linus Torvalds Signed-off-by: Dirk Hohndel --- statistics.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'statistics.c') diff --git a/statistics.c b/statistics.c index 82070a937..d7abbc592 100644 --- a/statistics.c +++ b/statistics.c @@ -539,7 +539,7 @@ static void show_single_dive_stats(struct dive *dive) double value; int decimals; const char *unit; - int idx, offset, gas_used; + int idx, offset, gas_used, mbar; struct dive *prev_dive; struct tm tm; @@ -579,8 +579,9 @@ static void show_single_dive_stats(struct dive *dive) } else { set_label(single_w.air_temp, ""); } - if (get_surface_pressure_in_mbar(dive, FALSE)) { - set_label(single_w.air_press, "%d mbar", dive->dc.surface_pressure.mbar); + mbar = get_surface_pressure_in_mbar(dive, FALSE); + if (mbar) { + set_label(single_w.air_press, "%d mbar", mbar); } else { set_label(single_w.air_press, _("unknown")); } -- cgit v1.2.3-70-g09d2