From a0fb2f05c9358f13705c276aea8239be3e0e3d30 Mon Sep 17 00:00:00 2001 From: Juergen Spitzmueller Date: Wed, 16 May 2018 08:35:21 +0200 Subject: [PATCH] Do not start from a non-relevant parent in Buffer cloning. (cherry picked from commit e077255aea9d8380e1efcef00e90b822d19bc5d3) --- src/Buffer.cpp | 4 ++-- src/Buffer.h | 6 +++--- src/frontends/qt4/GuiView.cpp | 4 ++-- status.23x | 3 ++- 4 files changed, 9 insertions(+), 8 deletions(-) diff --git a/src/Buffer.cpp b/src/Buffer.cpp index 4ea890af2c..6d0fd4f17d 100644 --- a/src/Buffer.cpp +++ b/src/Buffer.cpp @@ -570,13 +570,13 @@ Buffer::~Buffer() } -Buffer * Buffer::cloneFromMaster() const +Buffer * Buffer::cloneWithChildren() const { BufferMap bufmap; cloned_buffers.push_back(new CloneList); CloneList * clones = cloned_buffers.back(); - masterBuffer()->cloneWithChildren(bufmap, clones); + cloneWithChildren(bufmap, clones); // make sure we got cloned BufferMap::const_iterator bit = bufmap.find(this); diff --git a/src/Buffer.h b/src/Buffer.h index b666b6610c..57efb8d003 100644 --- a/src/Buffer.h +++ b/src/Buffer.h @@ -157,9 +157,9 @@ public: /// Destructor ~Buffer(); - /// Clones the entire structure of which this Buffer is part, starting - /// with the master and cloning all the children, too. - Buffer * cloneFromMaster() const; + /// Clones the entire structure of which this Buffer is part, + /// cloning all the children, too. + Buffer * cloneWithChildren() const; /// Just clones this single Buffer. For autosave. Buffer * cloneBufferOnly() const; /// diff --git a/src/frontends/qt4/GuiView.cpp b/src/frontends/qt4/GuiView.cpp index 0eb48cfedc..1dda3638ff 100644 --- a/src/frontends/qt4/GuiView.cpp +++ b/src/frontends/qt4/GuiView.cpp @@ -3598,10 +3598,10 @@ bool GuiView::GuiViewPrivate::asyncBufferProcessing( #if EXPORT_in_THREAD if (allow_async) { GuiViewPrivate::busyBuffers.insert(used_buffer); - Buffer * cloned_buffer = used_buffer->cloneFromMaster(); + Buffer * cloned_buffer = used_buffer->cloneWithChildren(); if (!cloned_buffer) { Alert::error(_("Export Error"), - _("Error cloning the Buffer.")); + _("Error cloning the Buffer.")); return false; } QFuture f = QtConcurrent::run( diff --git a/status.23x b/status.23x index c78c671451..0e2dc528ea 100644 --- a/status.23x +++ b/status.23x @@ -48,7 +48,8 @@ What's new * DOCUMENT INPUT/OUTPUT - +- When cloning a buffer, do not start from a parent if it is not the + current master (e.g., when compiling a child alone). * USER INTERFACE -- 2.39.5