@@ -4598,15 +4598,21 @@ void Score::cmdTimeDelete()
45984598 }
45994599
46004600 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+
46104616 masterScore ()->doTimeDelete (masterStartSeg, masterEndSeg);
46114617 } else {
46124618 doTimeDelete (startSegment, endSegment);
0 commit comments