Author: jghali Date: Mon Apr 20 12:14:14 2020 New Revision: 23627 URL: http://scribus.net/websvn/listing.php?repname=Scribus&sc=1&rev=23627 Log: Fix potential crash when deleting note frame
Modified:
trunk/Scribus/scribus/pageitem_textframe.cpp
Modified: trunk/Scribus/scribus/pageitem_textframe.cpp
URL:
http://scribus.net/websvn/diff.php?repname=Scribus&rev=23627&path=/trunk/Scribus/scribus/pageitem_textframe.cpp
==============================================================================
--- trunk/Scribus/scribus/pageitem_textframe.cpp (original)
+++ trunk/Scribus/scribus/pageitem_textframe.cpp Mon Apr 20 12:14:14 2020
@@ -4629,26 +4629,29 @@
if (is)
is->set("noteframeName", getUName());
//remove marks from notes
- for (int ii = notes2DEL.count()
-1; ii >= 0; --ii)
+ for (int ii = notes2DEL.count()
- 1; ii >= 0; --ii)
{
TextNote* note =
notes2DEL.at(ii).first;
Q_ASSERT(note !=
nullptr);
- if (note->textLen > 0)
- {
-
itemText.deselectAll();
-
itemText.select(notes2DEL.at(ii).second + 1, note->textLen);
-
removeMarksFromText(true);
- }
+ if (note->textLen <= 0)
+ continue;
+ int oldTextLen =
itemText.length();
+ itemText.deselectAll();
+
itemText.select(notes2DEL.at(ii).second + 1, note->textLen);
+
removeMarksFromText(true);
+ marksNum += oldTextLen
- itemText.length();
}
asNoteFrame()->updateNotesText();
for (int ii = notes2DEL.count()
-1; ii >= 0; --ii)
{
TextNote* note =
notes2DEL.at(ii).first;
Q_ASSERT(note !=
nullptr);
+ int oldTextLen =
itemText.length();
m_Doc->setUndoDelNote(note);
if (note->isEndNote())
m_Doc->flag_updateEndNotes = true;
m_Doc->deleteNote(note);
+ marksNum += oldTextLen
- itemText.length();
}
if (is)
{
_______________________________________________
scribus-commit mailing list
[email protected]
http://lists.scribus.net/mailman/listinfo/scribus-commit
