Crash extending volta over mmrest starting a new system

• Jan 16, 2015 - 03:51
S2 - Critical

Ubuntu 14.04, GIT commit: e4898bc

1) my first score or similar with line breaks every four bars
2) enter notes in fourth bar
3) add volta to fourth bar
4) press "M" to enable mmrests
5) save
6) clsoe
7) reload
8) double click volta to put it in edit mode
9) shift+right

Result: crash

It's trying to extent the volta over the "real" measures within the mmrest, which I guess I OK (I think I'd more expect it to skip right pver the whole rest). But the measures the rest have no parent, so there is a crash trying to check their system.

You can work around it by presisng M twice on load to give the "real" measures a chance to be laid out. Not sure I trust the "system" info with the "real" measures since layout changes so radically, but it does seem to work.


You also get the crash with Shift+Left if the volta is already extended onto the next system. Both crashes have the same cause: m2->system() is null in LineSegment::edit(). I guess the more proper check would be to see if m2 is covered by an mmrest and check its system instead.

However, it gets worse. You can also get a crash any time you try move the start grip of any volta. There don't even to be mmrests involved, nor do you have to save/reload. This crash is a different cause - trying to remove the volta from the measure, but the volta shows as having no parent, so there is an assertion failure on the Measure::remove(). I will file this separately.