Warn about non-monotonous plot data and prevent infinite loop

The data are supposed to be sorted with monotonous time stamp. And while
the actual bug that causes this needs to be identified and fixed, this is
at least a stop gap measure that shows the issue and prevents Subsurface
from hanging.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
Dirk Hohndel 2015-09-20 07:54:28 -07:00
parent e4d2092f33
commit a77d1a3f56

View file

@ -849,6 +849,12 @@ void calculate_deco_information(struct dive *dive, struct divecomputer *dc, stru
(prefs.gflow - prefs.gfhigh) +
prefs.gfhigh) *
(100.0 - AMB_PERCENTAGE) / 100.0 + AMB_PERCENTAGE;
if (t0 > t1) {
fprintf(stderr, "non-monotonous dive stamps %d %d\n", t0, t1);
int xchg = t1;
t1 = t0;
t0 = xchg;
}
if (t0 != t1 && t1 - t0 < time_stepsize)
time_stepsize = t1 - t0;
for (j = t0 + time_stepsize; j <= t1; j += time_stepsize) {