summaryrefslogtreecommitdiff
path: root/libs/canvas/xfade_curve.cc
diff options
context:
space:
mode:
authorRobin Gareus <robin@gareus.org>2015-09-14 21:18:56 +0200
committerRobin Gareus <robin@gareus.org>2015-09-14 21:18:56 +0200
commit9a533c925bfdf40591bc8246eb9bb8620ab2e688 (patch)
treef0b017dbb62d52e4a762a8efb0a3ca57662ba837 /libs/canvas/xfade_curve.cc
parente63c3d028aac5880c36f1eb17892a5b42d5d565a (diff)
fix short x-fade rendering
Diffstat (limited to 'libs/canvas/xfade_curve.cc')
-rw-r--r--libs/canvas/xfade_curve.cc3
1 files changed, 2 insertions, 1 deletions
diff --git a/libs/canvas/xfade_curve.cc b/libs/canvas/xfade_curve.cc
index 0d7d7a5245..c8038aa227 100644
--- a/libs/canvas/xfade_curve.cc
+++ b/libs/canvas/xfade_curve.cc
@@ -178,13 +178,14 @@ XFadeCurve::get_path(Rect const & area, Cairo::RefPtr<Cairo::Context> context, C
Points::size_type left = 0;
Points::size_type right = c.n_samples - 1;
+ assert (left < right);
// we should really really do a binary search rather than iterate
for (Points::size_type idx = 0; idx < c.n_samples - 1; ++idx) {
left = idx;
window_space = item_to_window (Duple (c.samples[idx].x, 0.0), false);
if (window_space.x >= area.x0) break;
}
- for (Points::size_type idx = c.n_samples; idx >= left;) {
+ for (Points::size_type idx = c.n_samples; right > left;) {
--idx;
window_space = item_to_window (Duple (c.samples[idx].x, 0.0), false);
if (window_space.x <= area.x1) break;