diff options
-rw-r--r-- | core/gaspressures.c | 2 | ||||
-rw-r--r-- | core/profile.c | 18 | ||||
-rw-r--r-- | core/profile.h | 4 |
3 files changed, 9 insertions, 15 deletions
diff --git a/core/gaspressures.c b/core/gaspressures.c index 880c4dbdb..f8f6a7899 100644 --- a/core/gaspressures.c +++ b/core/gaspressures.c @@ -442,7 +442,7 @@ void populate_pressure_information(struct dive *dive, struct divecomputer *dc, s // until we get back to this cylinder. if (cyl != sensor) { current = NULL; - set_plot_pressure_data(entry, SENSOR_PR, sensor, 0); + set_plot_pressure_data(pi, i, SENSOR_PR, sensor, 0); continue; } diff --git a/core/profile.c b/core/profile.c index 413b1abde..a012eb0cf 100644 --- a/core/profile.c +++ b/core/profile.c @@ -599,9 +599,9 @@ static void populate_plot_entries(struct dive *dive, struct divecomputer *dc, st entry->pressures.o2 = sample->setpoint.mbar / 1000.0; } if (sample->pressure[0].mbar) - set_plot_pressure_data(entry, SENSOR_PR, sample->sensor[0], sample->pressure[0].mbar); + set_plot_pressure_data(pi, idx, SENSOR_PR, sample->sensor[0], sample->pressure[0].mbar); if (sample->pressure[1].mbar) - set_plot_pressure_data(entry, SENSOR_PR, sample->sensor[1], sample->pressure[1].mbar); + set_plot_pressure_data(pi, idx, SENSOR_PR, sample->sensor[1], sample->pressure[1].mbar); if (sample->temperature.mkelvin) entry->temperature = lasttemp = sample->temperature.mkelvin; else @@ -816,18 +816,12 @@ static void populate_secondary_sensor_data(const struct divecomputer *dc, struct */ static void add_plot_pressure(struct plot_info *pi, int time, int cyl, pressure_t p) { - struct plot_data *entry; - if (pi->nr <= 0) { - fprintf(stderr, "add_plot_pressure(): called with pi->nr <= 0\n"); - return; - } for (int i = 0; i < pi->nr; i++) { - entry = pi->entry + i; - - if (entry->sec >= time) - break; + if (i == pi->nr - 1 || pi->entry[i].sec >= time) { + set_plot_pressure_data(pi, i, SENSOR_PR, cyl, p.mbar); + return; + } } - set_plot_pressure_data(entry, SENSOR_PR, cyl, p.mbar); } static void setup_gas_sensor_pressure(const struct dive *dive, const struct divecomputer *dc, struct plot_info *pi) diff --git a/core/profile.h b/core/profile.h index 070da1f23..0153ccf94 100644 --- a/core/profile.h +++ b/core/profile.h @@ -107,9 +107,9 @@ static inline int get_plot_pressure_data(const struct plot_info *pi, int idx, en return pi->entry[idx].pressure[cylinder][sensor]; } -static inline void set_plot_pressure_data(struct plot_data *entry, enum plot_pressure sensor, int idx, int value) +static inline void set_plot_pressure_data(struct plot_info *pi, int idx, enum plot_pressure sensor, int cylinder, int value) { - entry->pressure[idx][sensor] = value; + pi->entry[idx].pressure[cylinder][sensor] = value; } static inline int get_plot_sensor_pressure(const struct plot_info *pi, int idx, int cylinder) |