mirror of
https://github.com/subsurface/subsurface.git
synced 2025-01-31 21:53:23 +00:00
Get rid of timelimit code and corner cases
The recursive minmax is now robust without them. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
76af28fee6
commit
95a051e164
1 changed files with 4 additions and 14 deletions
18
profile.c
18
profile.c
|
@ -104,12 +104,11 @@ static struct sample *next_minmax(struct sample *sample, struct sample *end, int
|
||||||
{
|
{
|
||||||
const int enough = 3000;
|
const int enough = 3000;
|
||||||
struct sample *result;
|
struct sample *result;
|
||||||
int timelimit, depthlimit;
|
int depthlimit;
|
||||||
|
|
||||||
if (sample >= end)
|
if (sample >= end)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
timelimit = 24*60*60;
|
|
||||||
depthlimit = sample->depth.mm;
|
depthlimit = sample->depth.mm;
|
||||||
result = NULL;
|
result = NULL;
|
||||||
|
|
||||||
|
@ -121,8 +120,6 @@ static struct sample *next_minmax(struct sample *sample, struct sample *end, int
|
||||||
return NULL;
|
return NULL;
|
||||||
time = sample->time.seconds;
|
time = sample->time.seconds;
|
||||||
depth = sample->depth.mm;
|
depth = sample->depth.mm;
|
||||||
if (time > timelimit)
|
|
||||||
break;
|
|
||||||
|
|
||||||
if (minmax) {
|
if (minmax) {
|
||||||
if (depth <= depthlimit) {
|
if (depth <= depthlimit) {
|
||||||
|
@ -140,8 +137,6 @@ static struct sample *next_minmax(struct sample *sample, struct sample *end, int
|
||||||
|
|
||||||
result = sample;
|
result = sample;
|
||||||
depthlimit = depth;
|
depthlimit = depth;
|
||||||
/* Look up to ten minutes into the future */
|
|
||||||
timelimit = time + 600;
|
|
||||||
}
|
}
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
@ -171,9 +166,9 @@ static void plot_text_samples(struct graphics_context *gc, struct sample *a, str
|
||||||
{
|
{
|
||||||
struct sample *max, *min;
|
struct sample *max, *min;
|
||||||
|
|
||||||
if (b < a)
|
if (b <= a)
|
||||||
return;
|
return;
|
||||||
if (b->time.seconds - a->time.seconds < 3*60)
|
if (b[-1].time.seconds - a->time.seconds < 3*60)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
max = next_minmax(a, b, 1);
|
max = next_minmax(a, b, 1);
|
||||||
|
@ -201,13 +196,8 @@ static void plot_depth_text(struct dive *dive, struct graphics_context *gc)
|
||||||
|
|
||||||
cairo_set_font_size(gc->cr, 14);
|
cairo_set_font_size(gc->cr, 14);
|
||||||
|
|
||||||
/*
|
|
||||||
* We never take the last sample into account.
|
|
||||||
* It should be a surface event anyway, although
|
|
||||||
* there are buggy cases where it isn't..
|
|
||||||
*/
|
|
||||||
sample = dive->sample;
|
sample = dive->sample;
|
||||||
end = dive->sample + dive->samples - 1;
|
end = dive->sample + dive->samples;
|
||||||
|
|
||||||
plot_text_samples(gc, sample, end);
|
plot_text_samples(gc, sample, end);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue