]> git.lyx.org Git - features.git/commitdiff
* src/lyxfind.C: fix change tracking crash
authorMichael Schmitt <michael.schmitt@teststep.org>
Thu, 1 Feb 2007 17:26:29 +0000 (17:26 +0000)
committerMichael Schmitt <michael.schmitt@teststep.org>
Thu, 1 Feb 2007 17:26:29 +0000 (17:26 +0000)
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@17011 a592a061-630c-0410-9148-cb99ea01b6c8

src/lyxfind.C

index 9e92f3b63b64db4b1b4a75d885e80307e4424520..c223c65b377c7a542c03a231aef9c6f5782cfa44 100644 (file)
@@ -348,12 +348,21 @@ bool findNextChange(BufferView * bv)
        Change orig_change = cur.paragraph().lookupChange(cur.pos());
 
        DocIterator et = doc_iterator_end(cur.inset());
+       DocIterator ok = cur;   // see below
        for (; cur != et; cur.forwardPosNoDescend()) {
+               ok = cur;
                Change change = cur.paragraph().lookupChange(cur.pos());
                if (change != orig_change) {
                        break;
                }
        }
+
+       // avoid crash (assertion violation) if the imaginary end-of-par
+       // character of the last paragraph of the document is marked as changed 
+       if (cur == et) {
+               cur = ok;
+       }
+
        // Now put cursor to end of selection:
        bv->cursor().setCursor(cur);
        bv->cursor().setSelection();