[PATCH 3/4] pressure interpolation: further code simplification
Linus Torvalds
torvalds at linux-foundation.org
Sun Feb 21 15:54:10 PST 2016
From: Linus Torvalds <torvalds at linux-foundation.org>
Date: Sun, 21 Feb 2016 15:20:39 -0800
Subject: [PATCH 3/4] 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 at linux-foundation.org>
---
I guess I could have combined this trivial simplification with the
previous one, but it's somewhat different in type, and would have made it
harder to see from the patch itself that it's all "obviously correct".
Famous last words. Even trivial patches can end up having mistaeks.
subsurface-core/gaspressures.c | 11 +++--------
1 file changed, 3 insertions(+), 8 deletions(-)
diff --git a/subsurface-core/gaspressures.c b/subsurface-core/gaspressures.c
index c63e16204ea1..5e7cd72ea785 100644
--- a/subsurface-core/gaspressures.c
+++ b/subsurface-core/gaspressures.c
@@ -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;
+ interpolate.pressure_time += entry->pressure_time;
+ if (entry->sec >= segment->t_end)
break;
- }
- if (i <= cur) {
+ if (i <= cur)
interpolate.acc_pressure_time += entry->pressure_time;
- interpolate.pressure_time += entry->pressure_time;
- continue;
- }
- interpolate.pressure_time += entry->pressure_time;
}
return interpolate;
}
--
2.7.0.170.ge572fef
More information about the subsurface
mailing list