]> git.lyx.org Git - lyx.git/blobdiff - src/Text.cpp
Fix crash noticed by Bennett:
[lyx.git] / src / Text.cpp
index ccee25139f0b1d90c5ed14cac6760e7ab5b89959..cb9531d19dcd64e1c252cbf86c345c42a8eb3112 100644 (file)
@@ -394,11 +394,11 @@ void Text::readParToken(Paragraph & par, Lexer & lex,
                lex.next();
                setLyXColor(lex.getString(), font.fontInfo());
        } else if (token == "\\SpecialChar") {
-                       auto_ptr<Inset> inset;
-                       inset.reset(new InsetSpecialChar);
-                       inset->read(lex);
-                       par.insertInset(par.size(), inset.release(),
-                                       font, change);
+               auto_ptr<Inset> inset;
+               inset.reset(new InsetSpecialChar);
+               inset->read(lex);
+               inset->setBuffer(const_cast<Buffer &>(buf));
+               par.insertInset(par.size(), inset.release(), font, change);
        } else if (token == "\\backslash") {
                par.appendChar('\\', font, change);
        } else if (token == "\\LyXTable") {
@@ -406,7 +406,10 @@ void Text::readParToken(Paragraph & par, Lexer & lex,
                inset->read(lex);
                par.insertInset(par.size(), inset.release(), font, change);
        } else if (token == "\\lyxline") {
-               par.insertInset(par.size(), new InsetLine, font, change);
+               auto_ptr<Inset> inset;
+               inset.reset(new InsetLine);
+               inset->setBuffer(const_cast<Buffer &>(buf));
+               par.insertInset(par.size(), inset.release(), font, change);
        } else if (token == "\\change_unchanged") {
                change = Change(Change::UNCHANGED);
        } else if (token == "\\change_inserted" || token == "\\change_deleted") {
@@ -1682,8 +1685,6 @@ bool Text::read(Lexer & lex,
                        readParagraph(pars_.back(), lex, errorList);
 
                        // register the words in the global word list
-                       CursorSlice sl = CursorSlice(*insetPtr);
-                       sl.pit() = pars_.size() - 1;
                        pars_.back().updateWords();
                } else if (token == "\\begin_deeper") {
                        ++depth;