13
0

Slightly expanded version of patch from epitech_user to

fix use of invalidated iterator (#4823).


git-svn-id: svn://localhost/ardour2/branches/3.0@11889 d708f5d6-7413-0410-9779-e7cbd77b26cf
This commit is contained in:
Carl Hetherington 2012-04-11 10:08:03 +00:00
parent d99311d21b
commit d3775ac42b

View File

@ -174,6 +174,7 @@ TempoLines::draw (const ARDOUR::TempoMap::BBTPointList::const_iterator& begin,
// Steal from the right // Steal from the right
if (left->first > needed_left && li != steal && steal->first > needed_right) { if (left->first > needed_left && li != steal && steal->first > needed_right) {
//cout << "*** STEALING FROM RIGHT" << endl; //cout << "*** STEALING FROM RIGHT" << endl;
double const x = steal->first;
line = steal->second; line = steal->second;
_lines.erase(steal); _lines.erase(steal);
line->property_x1() = xpos; line->property_x1() = xpos;
@ -185,7 +186,7 @@ TempoLines::draw (const ARDOUR::TempoMap::BBTPointList::const_iterator& begin,
// Shift clean range left // Shift clean range left
_clean_left = min(_clean_left, xpos); _clean_left = min(_clean_left, xpos);
_clean_right = min(_clean_right, steal->first); _clean_right = min(_clean_right, x);
// Move this line to where we need it // Move this line to where we need it
} else { } else {
@ -230,6 +231,7 @@ TempoLines::draw (const ARDOUR::TempoMap::BBTPointList::const_iterator& begin,
//cout << "*** STEALING FROM LEFT" << endl; //cout << "*** STEALING FROM LEFT" << endl;
assert(_lines.find(xpos) == _lines.end()); assert(_lines.find(xpos) == _lines.end());
Lines::iterator steal = _lines.begin(); Lines::iterator steal = _lines.begin();
double const x = steal->first;
line = steal->second; line = steal->second;
_lines.erase(steal); _lines.erase(steal);
line->property_color_rgba() = color; line->property_color_rgba() = color;
@ -240,7 +242,7 @@ TempoLines::draw (const ARDOUR::TempoMap::BBTPointList::const_iterator& begin,
invalidated = true; invalidated = true;
// Shift clean range right // Shift clean range right
_clean_left = max(_clean_left, steal->first); _clean_left = max(_clean_left, x);
_clean_right = max(_clean_right, xpos); _clean_right = max(_clean_right, xpos);
} }
} }