From d9c77a27da83d7f00254edd405406326254faae2 Mon Sep 17 00:00:00 2001 From: Berthold Stoeger Date: Mon, 13 Sep 2021 20:48:18 +0200 Subject: [PATCH] core: properly clear pressure data of invalid sensors When we found an invalid sensor (referring to a non existing cylinder) in fixup_dive() the sensor-id was set to NO_SENSOR. This led to invalid XML files, because the code decides to switch into legacy mode. However, there are two pressure readings, which is invalid in legacy mode. Therefore, also clear the pressure data. Signed-off-by: Berthold Stoeger --- core/dive.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/core/dive.c b/core/dive.c index c97e1ba11..414ad30f2 100644 --- a/core/dive.c +++ b/core/dive.c @@ -1213,8 +1213,10 @@ static void fixup_dc_sample_sensors(struct divecomputer *dc, int nr_cylinders) for (int i = 0; i < dc->samples; i++) { struct sample *s = dc->sample + i; for (int j = 0; j < MAX_SENSORS; j++) { - if (s->sensor[j] < 0 || s->sensor[j] >= nr_cylinders) + if (s->sensor[j] < 0 || s->sensor[j] >= nr_cylinders) { s->sensor[j] = NO_SENSOR; + s->pressure[j].mbar = 0; + } } } }