1-measure repeat at end of section causes repeat list to continue afterwards
repeat28.mscx has 3 measures:
| m1 |: m2 :| SECTION_BREAK, |m3|
expected behavior repeat list: m1, m2, m2, m3.
actual behavior on 2.0.2 and current master: m1, m2, m3
Since the repeat list continues on, I am able to produce a CRASH in second attached example, which is prepared with a DC al Fine on that m2 but without a corresponding Fine in that section. If I delete that DC al Fine and then do some modification that will dirty the repeat list, e.g. if I insert a measure somewhere in the next section, then repeatlist:unwind will crash inside qDeleteAll(*this) (I think there may be some double deletion going on or something). (note, I haven't fully cleaned this second test example down to the minimal steps necessary to produce crash, but regardless, I think this crash will be fixed if I fix the simpler case in repeat28.mscx) ...unable to reproduce on master git at the moment, although was crashing on 2.0.2 while I was writing code to fix #65161: Da Capo/Da Segno al Fine ignore next section on playback ...
Attachment | Size |
---|---|
repeat28.mscx | 4.54 KB |
repeat-album_ready-to-crash-if-remove-first-DC-al-Fine-then-insert-measure-and-play.mscx | 77.89 KB |
Comments
note: I mark "critical" because cause crash, even though may be rare and uses arguably rare garbage input...I'm about to fix with PR...problem is RepeatList::jumpToStartRepeat
if (nm->sectionBreak() && nm->nextMeasure()) {
nm = nm->nextMeasure();
}
break;
hmm...wait I can't seem to reproduce the crash on a fresh checkout of master...although the first repeat28.mscx error is still there...let me investigate a little bit more...
looks like that crash specifically only occurred while I was debugging my modified code fix for #65161: Da Capo/Da Segno al Fine ignore next section on playback
sorry the repeat28 attached in OP was created in git. Attached below are created from 2.0.2
Fixed in branch master, commit 0f3a3e5762
Fix #73486 #73496 rewrite jumpToStartRepeat condition evalation reordered
Fixed in branch master, commit 7c6ad688d4
Merge pull request #2168 from ericfont/73486-73496-jumpToStartRepeat-evaluate-conditions-in-proper-order-also-ctests-j2
Fix #73486 Fix #73496 rewrite jumpToStartRepeat reorder conditions eval
Fixed in branch 2.0.3, commit da45ab2519
Fix #73486 #73496 rewrite jumpToStartRepeat condition evalation reordered
Automatically closed -- issue fixed for 2 weeks with no activity.