@@ -4598,15 +4598,21 @@ void Score::cmdTimeDelete()
4598
4598
}
4599
4599
4600
4600
if (!isMaster () && masterScore ()) {
4601
- Measure* masterStartMeas = masterScore ()->tick2measure (startSegment->tick ());
4602
- Measure* masterEndMeas = masterScore ()->tick2measure (endSegment->tick ());
4603
- if (endSegment->isEndBarLineType ()) {
4604
- Measure* prevEndMeasure = masterEndMeas->prevMeasure ();
4605
- masterEndMeas = prevEndMeasure ? prevEndMeasure : masterEndMeas;
4606
- }
4607
- Segment* masterStartSeg
4608
- = masterStartMeas ? masterStartMeas->findSegment (startSegment->segmentType (), startSegment->tick ()) : startSegment;
4609
- Segment* masterEndSeg = masterEndMeas ? masterEndMeas->findSegment (endSegment->segmentType (), endSegment->tick ()) : endSegment;
4601
+ Fraction startTick = startSegment->tick ();
4602
+ Measure* masterStartMeas = masterScore ()->tick2measure (startTick);
4603
+ Segment* masterStartSeg = masterStartMeas->findSegment (startSegment->segmentType (), startSegment->tick ());
4604
+ Segment* masterEndSeg = nullptr ;
4605
+
4606
+ if (endSegment) {
4607
+ Fraction endTick = endSegment->tick ();
4608
+ Measure* masterEndMeas = masterScore ()->tick2measure (endTick);
4609
+ if (endSegment->isEndBarLineType ()) {
4610
+ Measure* prevMasterEndMeasure = masterEndMeas->prevMeasure ();
4611
+ masterEndMeas = prevMasterEndMeasure ? prevMasterEndMeasure : masterEndMeas;
4612
+ }
4613
+ masterEndSeg = masterEndMeas->findSegment (endSegment->segmentType (), endSegment->tick ());
4614
+ }
4615
+
4610
4616
masterScore ()->doTimeDelete (masterStartSeg, masterEndSeg);
4611
4617
} else {
4612
4618
doTimeDelete (startSegment, endSegment);
0 commit comments