commit 27af044a2dd2d0846dda5e5d97fd81a4d48532c3
Author: Richard Heck <[email protected]>
Date:   Sat Feb 15 20:53:03 2014 -0500

    It's definitely not safe to continue in this case. The cursor is
    invalid. So we should try to save the document before anything
    really bad happens.

diff --git a/src/Cursor.cpp b/src/Cursor.cpp
index 3ad16f4..9cca7b0 100644
--- a/src/Cursor.cpp
+++ b/src/Cursor.cpp
@@ -400,10 +400,12 @@ void Cursor::dispatch(FuncRequest const & cmd0)
        for (; depth(); pop(), boundary(false)) {
                LYXERR(Debug::DEBUG, "Cursor::dispatch: cmd: "
                        << cmd0 << endl << *this);
-               // LASSERT: Is it safe to continue here, or should we return?
-               LASSERT(pos() <= lastpos(), /**/);
-               LASSERT(idx() <= lastidx(), /**/);
-               LASSERT(pit() <= lastpit(), /**/);
+
+               // In any of these cases, the cursor is invalid, and we should
+               // try to save this document rather than crash.
+               LBUFERR(pos() <= lastpos());
+               LBUFERR(idx() <= lastidx());
+               LBUFERR(pit() <= lastpit());
 
                // The common case is 'LFUN handled, need update', so make the
                // LFUN handler's life easier by assuming this as default value.

Reply via email to