From a77d1a3f56c5c5da57dd817507979f63ac6e4761 Mon Sep 17 00:00:00 2001 From: Dirk Hohndel Date: Sun, 20 Sep 2015 07:54:28 -0700 Subject: 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 --- profile.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/profile.c b/profile.c index 158517e2d..b676dc5b0 100644 --- a/profile.c +++ b/profile.c @@ -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) { -- cgit v1.2.3-70-g09d2