From 1a100932f7b7ff958349beafdea84e573e5f8c2b Mon Sep 17 00:00:00 2001 From: Joachim Schmitz Date: Wed, 19 Feb 2025 19:56:30 +0100 Subject: [PATCH] Fix GH#26593: Crash when importing MusicXML with multiple fermatas on a grace note --- src/engraving/rendering/score/tlayout.cpp | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/src/engraving/rendering/score/tlayout.cpp b/src/engraving/rendering/score/tlayout.cpp index abf73fc084b28..1a8b700d9f20a 100644 --- a/src/engraving/rendering/score/tlayout.cpp +++ b/src/engraving/rendering/score/tlayout.cpp @@ -2212,7 +2212,7 @@ void TLayout::layoutFermata(const Fermata* item, Fermata::LayoutData* ldata, con double x = 0.0; double y = 0.0; const Segment* s = item->segment(); - const EngravingItem* e = s->element(item->track()); + const EngravingItem* e = s ? s->element(item->track()) : nullptr; if (e) { LD_CONDITION(e->ldata()->isSetBbox()); // e->shape() @@ -2249,11 +2249,13 @@ void TLayout::layoutFermata(const Fermata* item, Fermata::LayoutData* ldata, con ldata->setBbox(b.translated(-0.5 * b.width(), 0.0)); if (item->autoplace()) { - const Segment* s2 = item->segment(); - const Measure* m = s2->measure(); LD_CONDITION(ldata->isSetPos()); - LD_CONDITION(m->ldata()->isSetPos()); - LD_CONDITION(s2->ldata()->isSetPos()); + const Segment* s2 = item->segment(); + if (s2) { + const Measure* m = s2->measure(); + LD_CONDITION(m->ldata()->isSetPos()); + LD_CONDITION(s2->ldata()->isSetPos()); + } } Autoplace::autoplaceSegmentElement(item, ldata);