Split staff in parts with slur causes a crash
Nigthly 44c8190 / Windows7
1) Open this file: 1 test file descending.mscz
2) Generate parts -> Ok
3) In main score or part: Split staff -> Split point (c3) -> Ok
Result: ok
4) Open this second file: 2 test file ascending.mscz
and repeat the same previous steps #2 and #3
Result: crash
Seems that the crash occurs if the end of the slur corresponds to the split point? E.g: B-slur-C (split point)
It works if we have the reverse (or descending): E.g: C (split point) - slur - B
Comments
Slur::slurPos is calling Chord::downNote() on a chord with no notes.
There is a important decision to make here. Do we support parts with less staves than the instrument they are created from.
The same kind of problem will appear if after creating the parts, a user adds a staff to an instrument.
I'm fine with the answer being "no". I have occasionally been surprised by the current behavior (adding a staff to an instrument in score doesn't add it in part), although not because of any actual need - it's more just testing where I occasionally do this. Automatically adding the new staff to both parts would be the expected behavior for me, I think. Disallowing the operation for now also feels fine.
Fixed in b2e18e64cb
Issue always reproducible in Nightly 0948dbc
Open this file: 2 test file ascending.mscz
2) File -> Parts -> New all -> Ok
3) View "Piano" part -> Split staff -> Split Point (c3) -> Ok
Result: crash.
I found this bug in a file attached with another related issue, since fixed: #52506: Split Staff on particular slur crashes MuseScore
The condition is that there are parts.
And the problem is exactly when a note with slur exceeds the split point (or at the same level)
There are, in measures 11 and 16, only three involved notes (I changed them in red color) in that file.
If you made: Split staff -> Split Point (c3), you receive a crash (in main score or in parts). S85 - 1. Die launige Forelle-2.0.mscz
Now, in this file, I only dropped these three notes (in green) below the split point. And there is no crash. test S85 - 1. Die launige Forelle-2.0(1).mscz
EDIT: I have a doubt after seeing the Nightly used (yet, the last one of today). Maybe this Nightly was before the fix of Lasconic? So, if it is that, please close this issue.
Good catch. I forgot to cherry pick this commit in the 2.0 branch. Should be fixed now.
Automatically closed -- issue fixed for 2 weeks with no activity.