Possible fix for bug #10295.

As it was, the comparison buffer was sharing a DocumentClass with
one of the compared buffers. I don't fully understand why this was
causing a problem, since we use a shared_ptr. But this patch creates
a new DocumentClass for the new buffer.
This commit is contained in:
Richard Heck 2017-04-02 20:59:23 -04:00 committed by Jean-Marc Lasgouttes
parent 66aa52ff20
commit 9b0b45dc81

View File

@ -15,6 +15,8 @@
#include "Author.h"
#include "BufferParams.h"
#include "Changes.h"
#include "CutAndPaste.h"
#include "ErrorList.h"
#include "Font.h"
#include "insets/InsetText.h"
@ -382,7 +384,16 @@ void Compare::run()
// Copy the buffer params to the destination buffer
dest_buffer->params() = options_.settings_from_new
? new_buffer->params() : old_buffer->params();
// We do not want to share the DocumentClass with the other Buffer
// See bug #10295
DocumentClassConstPtr olddc = dest_buffer->params().documentClassPtr();
dest_buffer->params().makeDocumentClass();
ErrorList el;
cap::switchBetweenClasses(
olddc, dest_buffer->params().documentClassPtr(),
static_cast<InsetText &>(dest_buffer->inset()), el);
// Copy extra authors to the destination buffer
AuthorList const & extra_authors = options_.settings_from_new ?
old_buffer->params().authors() : new_buffer->params().authors();