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:
parent
d99311d21b
commit
d3775ac42b
@ -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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user