Subject: [PATCH] fix #17787: Crash when deleting a text frame with marks in it --- Index: scribus/text/storytext.cpp IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== diff --git a/scribus/text/storytext.cpp b/scribus/text/storytext.cpp --- a/scribus/text/storytext.cpp (revision 27613) +++ b/scribus/text/storytext.cpp (date 1779545698488) @@ -1241,8 +1241,9 @@ return; NotesStyle* nStyle = note->notesStyle(); - Q_ASSERT(nStyle != nullptr); - + if (nStyle == nullptr) + return; + QString chsName = nStyle->marksChStyle(); if (!chsName.isEmpty()) { Index: scribus/ui/marksmanager.cpp IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== diff --git a/scribus/ui/marksmanager.cpp b/scribus/ui/marksmanager.cpp --- a/scribus/ui/marksmanager.cpp (revision 27613) +++ b/scribus/ui/marksmanager.cpp (date 1779544542520) @@ -247,7 +247,7 @@ m_Doc->setUndoDelNote(mrk->getNotePtr()); else m_Doc->setUndoDelMark(mrk); - m_Doc->eraseMark(mrk, true, nullptr, true); + m_Doc->eraseMark(mrk, true, mrk->getItemPtr(), true); m_Doc->changed(); m_Doc->regionsChanged()->update(QRectF()); updateListView(); Index: scribus/scribusdoc.cpp IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== diff --git a/scribus/scribusdoc.cpp b/scribus/scribusdoc.cpp --- a/scribus/scribusdoc.cpp (revision 27613) +++ b/scribus/scribusdoc.cpp (date 1779545813590) @@ -17861,7 +17861,7 @@ // qDebug()<<"Found mark in text chain starting on page:"<OwnPage; // qDebug()<<"Frame of char at"<frameOfChar(markTextPos)->OwnPage; lastItem = item; - return item->frameOfChar(markTextPos); + return item; } } lastItem = nullptr; @@ -18014,7 +18014,7 @@ if (mrk->isUnique()) { ims->set("MARK", QString("delete")); - PageItem* master = findFirstMarkItem(mrk); + PageItem* master = mrk->getItemPtr(); if (master->isNoteFrame()) ims->set("noteframeName", master->getUName()); else