pressure interpolation: further code simplification

With the two bigger simplications, this just re-organizes the code to do
the "interpolate.pressure_time" update that is shared among all the
"after segment start" cases in just one place.

That leaves the get_pr_interpolate_data() much simpler, and makes it
much clearer what it actually does.

In particular, it becomes very obvious that "interpolate.pressure_time"
is constant for one particular segment (it's the total pressure time),
and that "interpolate.acc_pressure_time" is the one that gets updated
for every entry.

The next step is to only call this for the first entry, and then update
just the "acc_pressure_time" in the caller.

Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
Linus Torvalds 2016-02-21 15:20:39 -08:00 committed by Dirk Hohndel
parent 398cd5d9cc
commit b71fc7ffb2

View file

@ -187,16 +187,11 @@ static struct pr_interpolate_struct get_pr_interpolate_data(pr_track_t *segment,
if (entry->sec < segment->t_start)
continue;
if (entry->sec >= segment->t_end) {
interpolate.pressure_time += entry->pressure_time;
break;
}
if (i <= cur) {
interpolate.acc_pressure_time += entry->pressure_time;
interpolate.pressure_time += entry->pressure_time;
continue;
}
interpolate.pressure_time += entry->pressure_time;
if (entry->sec >= segment->t_end)
break;
if (i <= cur)
interpolate.acc_pressure_time += entry->pressure_time;
}
return interpolate;
}