From 411b7abcfa57e95eb467b89201bc753cef0109b3 Mon Sep 17 00:00:00 2001 From: Richard Heck Date: Sat, 8 Sep 2007 17:50:09 +0000 Subject: [PATCH] Fix crash when layout file cannot be read due to failure to call makeTextClass() in that case. git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@20153 a592a061-630c-0410-9148-cb99ea01b6c8 --- src/Buffer.cpp | 5 +++-- src/BufferParams.cpp | 15 ++++++++------- 2 files changed, 11 insertions(+), 9 deletions(-) diff --git a/src/Buffer.cpp b/src/Buffer.cpp index bdf866fbe1..a7bca7bd37 100644 --- a/src/Buffer.cpp +++ b/src/Buffer.cpp @@ -531,8 +531,9 @@ bool Buffer::readDocument(Lexer & lex) BOOST_ASSERT(paragraphs().empty()); readHeader(lex); - if (!params().getTextClass().load(filePath())) { - string theclass = params().getTextClass().name(); + TextClass const & baseClass = textclasslist[params().getBaseClass()]; + if (!baseClass.load(filePath())) { + string theclass = baseClass.name(); Alert::error(_("Can't load document class"), bformat( _("Using the default document class, because the " "class %1$s could not be loaded."), from_utf8(theclass))); diff --git a/src/BufferParams.cpp b/src/BufferParams.cpp index b78056b529..e566cdd822 100644 --- a/src/BufferParams.cpp +++ b/src/BufferParams.cpp @@ -1227,17 +1227,18 @@ void BufferParams::setTextClass(TextClass_ptr tc) { bool BufferParams::setBaseClass(textclass_type tc) { - if (!textclasslist[tc].load()) { - docstring s = bformat(_("The document class %1$s." - "could not be loaded."), + bool retVal = true; + if (textclasslist[tc].load()) + baseClass_ = tc; + else { + docstring s = + bformat(_("The document class %1$s could not be loaded."), from_utf8(textclasslist[tc].name())); frontend::Alert::error(_("Could not load class"), s); - return false; + retVal = false; } - - baseClass_ = tc; makeTextClass(); - return true; + return retVal; } -- 2.39.2