diff options
author | Dirk Hohndel <dirk@hohndel.org> | 2015-01-02 20:39:19 -0800 |
---|---|---|
committer | Dirk Hohndel <dirk@hohndel.org> | 2015-01-02 20:39:19 -0800 |
commit | d1af75357de293a629b9834661575c80b09facce (patch) | |
tree | 309f039950e205306ab561e934890ed3c46a7161 /dive.c | |
parent | cef150d7dcd75a76ac810b9cf33e90e845561129 (diff) | |
download | subsurface-d1af75357de293a629b9834661575c80b09facce.tar.gz |
Partial revert of commit 6cf3787a0ed1
Commit 6cf3787a0ed1 ("Remove code that zeroes out duplicate oxygen sensor
and temperature values") incorrectly removes the code that zeroes out the
temperatures.
Reported-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Diffstat (limited to 'dive.c')
-rw-r--r-- | dive.c | 11 |
1 files changed, 11 insertions, 0 deletions
@@ -1183,6 +1183,7 @@ static void fixup_dive_dc(struct dive *dive, struct divecomputer *dc) int maxdepth = dc->maxdepth.mm; int mintemp = 0; int lastdepth = 0; + int lasttemp = 0; int lastpressure = 0, lasto2pressure = 0; int pressure_delta[MAX_CYLINDERS] = { INT_MAX, }; int first_cylinder; @@ -1247,6 +1248,16 @@ static void fixup_dive_dc(struct dive *dive, struct divecomputer *dc) fixup_pressure(dive, sample, OXYGEN); if (temp) { + /* + * If we have consecutive identical + * temperature readings, throw away + * the redundant ones. + */ + if (lasttemp == temp) + sample->temperature.mkelvin = 0; + else + lasttemp = temp; + if (!mintemp || temp < mintemp) mintemp = temp; } |