diff options
author | Robin Gareus <robin@gareus.org> | 2015-09-14 21:18:56 +0200 |
---|---|---|
committer | Robin Gareus <robin@gareus.org> | 2015-09-14 21:18:56 +0200 |
commit | 9a533c925bfdf40591bc8246eb9bb8620ab2e688 (patch) | |
tree | f0b017dbb62d52e4a762a8efb0a3ca57662ba837 /libs | |
parent | e63c3d028aac5880c36f1eb17892a5b42d5d565a (diff) |
fix short x-fade rendering
Diffstat (limited to 'libs')
-rw-r--r-- | libs/canvas/xfade_curve.cc | 3 |
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; |