diff options
Diffstat (limited to 'audio/ardour/tempoline_crash.patch')
-rw-r--r-- | audio/ardour/tempoline_crash.patch | 83 |
1 files changed, 0 insertions, 83 deletions
diff --git a/audio/ardour/tempoline_crash.patch b/audio/ardour/tempoline_crash.patch deleted file mode 100644 index cd93b1531b..0000000000 --- a/audio/ardour/tempoline_crash.patch +++ /dev/null @@ -1,83 +0,0 @@ -commit b29f54fb6efcdb2facf0471bd8e24d8eea3231b0 -Author: Paul Davis <paul@linuxaudiosystems.com> -Date: Wed Feb 20 18:53:30 2013 +0000 - - back-port tempo line assert fix from 3.0 to stop crashing under some relatively easy to hit conditions - - git-svn-id: svn://localhost/ardour2/branches/2.0-ongoing@14067 d708f5d6-7413-0410-9779-e7cbd77b26cf - -diff --git a/gtk2_ardour/tempo_lines.cc b/gtk2_ardour/tempo_lines.cc -index e8bd034..a373dec 100644 ---- a/gtk2_ardour/tempo_lines.cc -+++ b/gtk2_ardour/tempo_lines.cc -@@ -146,9 +146,8 @@ TempoLines::draw (ARDOUR::TempoMap::BBTPointList& points, double frames_per_unit - } - - xpos = rint(((nframes64_t)(*i).frame) / (double)frames_per_unit); -- if (inserted_last_time && !_lines.empty()) { -- li = _lines.lower_bound(xpos); // first line >= xpos -- } -+ -+ li = _lines.lower_bound(xpos); // first line >= xpos - - line = (li != _lines.end()) ? li->second : NULL; - assert(!line || line->property_x1() == li->first); -@@ -215,33 +214,35 @@ TempoLines::draw (ARDOUR::TempoMap::BBTPointList& points, double frames_per_unit - // Create a new line - } else if (_lines.size() < needed || _lines.size() < MAX_CACHED_LINES) { - //cout << "*** CREATING LINE" << endl; -- assert(_lines.find(xpos) == _lines.end()); -- line = new ArdourCanvas::SimpleLine (*_group); -- line->property_x1() = xpos; -- line->property_x2() = xpos; -- line->property_y1() = 0.0; -- line->property_y2() = _height; -- line->property_color_rgba() = color; -- _lines.insert(make_pair(xpos, line)); -- inserted_last_time = true; -+ if (_lines.find(xpos) == _lines.end()) { -+ line = new ArdourCanvas::SimpleLine (*_group); -+ line->property_x1() = xpos; -+ line->property_x2() = xpos; -+ line->property_y1() = 0.0; -+ line->property_y2() = _height; -+ line->property_color_rgba() = color; -+ _lines.insert(make_pair(xpos, line)); -+ inserted_last_time = true; -+ } - - // Steal from the left - } else { - //cout << "*** STEALING FROM LEFT" << endl; -- assert(_lines.find(xpos) == _lines.end()); -- Lines::iterator steal = _lines.begin(); -- line = steal->second; -- _lines.erase(steal); -- line->property_color_rgba() = color; -- line->property_x1() = xpos; -- line->property_x2() = xpos; -- _lines.insert(make_pair(xpos, line)); -- inserted_last_time = true; // search next time -- invalidated = true; -- -- // Shift clean range right -- _clean_left = max(_clean_left, steal->first); -- _clean_right = max(_clean_right, xpos); -+ if (_lines.find(xpos) == _lines.end()) { -+ Lines::iterator steal = _lines.begin(); -+ line = steal->second; -+ _lines.erase(steal); -+ line->property_color_rgba() = color; -+ line->property_x1() = xpos; -+ line->property_x2() = xpos; -+ _lines.insert(make_pair(xpos, line)); -+ inserted_last_time = true; // search next time -+ invalidated = true; -+ -+ // Shift clean range right -+ _clean_left = max(_clean_left, steal->first); -+ _clean_right = max(_clean_right, xpos); -+ } - } - - break; |