summaryrefslogtreecommitdiff
path: root/gtk2_ardour/tempo_curve.cc
diff options
context:
space:
mode:
authornick_m <mainsbridge@gmail.com>2016-07-11 03:53:36 +1000
committernick_m <mainsbridge@gmail.com>2016-07-11 03:53:36 +1000
commitb8a7ee001b3e1e19012e8713d2e1424e4c8820a6 (patch)
tree28075420e777b6d2ddf82c67c381933671ffdf24 /gtk2_ardour/tempo_curve.cc
parent5156b8aeb5f3851628d1d4bdbe953731f67b5c44 (diff)
Fix potential infinite loop in TempoCurve::set_position()
- it was previously possible for frame_step to be zero for tempo sections with a short duration, resulting in endlessly adding 0 to current_frame.
Diffstat (limited to 'gtk2_ardour/tempo_curve.cc')
-rw-r--r--gtk2_ardour/tempo_curve.cc2
1 files changed, 1 insertions, 1 deletions
diff --git a/gtk2_ardour/tempo_curve.cc b/gtk2_ardour/tempo_curve.cc
index bc83bfaa42..4771205263 100644
--- a/gtk2_ardour/tempo_curve.cc
+++ b/gtk2_ardour/tempo_curve.cc
@@ -128,7 +128,7 @@ TempoCurve::set_position (framepos_t frame, framepos_t end_frame)
points->push_back (ArdourCanvas::Duple (ArdourCanvas::COORD_MAX - 5.0, y_pos));
} else {
- const framepos_t frame_step = (end_frame - frame) / 5;
+ const framepos_t frame_step = max ((end_frame - frame) / 5, (framepos_t) 1);
framepos_t current_frame = frame;
while (current_frame < (end_frame - frame_step)) {