summaryrefslogtreecommitdiff
path: root/gtk2_ardour/control_point.cc
diff options
context:
space:
mode:
Diffstat (limited to 'gtk2_ardour/control_point.cc')
-rw-r--r--gtk2_ardour/control_point.cc8
1 files changed, 8 insertions, 0 deletions
diff --git a/gtk2_ardour/control_point.cc b/gtk2_ardour/control_point.cc
index 7632642adc..801bd5bb82 100644
--- a/gtk2_ardour/control_point.cc
+++ b/gtk2_ardour/control_point.cc
@@ -118,6 +118,14 @@ ControlPoint::visible () const
void
ControlPoint::reset (double x, double y, AutomationList::iterator mi, uint32_t vi, ShapeType shape)
{
+ /* If this is too big, libart will confuse itself and segfault after it casts the bounding box
+ of this automation line to ints. Sigh.
+ */
+
+ if (x > INT32_MAX) {
+ x = INT32_MAX;
+ }
+
_model = mi;
_view_index = vi;
move_to (x, y, shape);