]> git.lyx.org Git - features.git/commitdiff
Fix bug #6160 and #6182: Assertion when viewing master document.
authorVincent van Ravesteijn <vfr@lyx.org>
Sat, 29 Aug 2009 23:14:38 +0000 (23:14 +0000)
committerVincent van Ravesteijn <vfr@lyx.org>
Sat, 29 Aug 2009 23:14:38 +0000 (23:14 +0000)
Set Buffer to Insets when reading a document. InsetSpecialChar and InsetLine are the only Insets that are instantiated in readParToken.

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@31238 a592a061-630c-0410-9148-cb99ea01b6c8

src/Text.cpp

index 54ee1dac9b5f1e80a2af2d8cb7d3fa6ae2985409..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") {