Do not start from a non-reveant parent in Buffer cloning.

This commit is contained in:
Juergen Spitzmueller 2018-05-16 08:35:21 +02:00
parent d0cd06e191
commit e077255aea
3 changed files with 7 additions and 7 deletions

View File

@ -562,13 +562,13 @@ Buffer::~Buffer()
} }
Buffer * Buffer::cloneFromMaster() const Buffer * Buffer::cloneWithChildren() const
{ {
BufferMap bufmap; BufferMap bufmap;
cloned_buffers.push_back(new CloneList); cloned_buffers.push_back(new CloneList);
CloneList * clones = cloned_buffers.back(); CloneList * clones = cloned_buffers.back();
masterBuffer()->cloneWithChildren(bufmap, clones); cloneWithChildren(bufmap, clones);
// make sure we got cloned // make sure we got cloned
BufferMap::const_iterator bit = bufmap.find(this); BufferMap::const_iterator bit = bufmap.find(this);

View File

@ -159,9 +159,9 @@ public:
/// Destructor /// Destructor
~Buffer(); ~Buffer();
/// Clones the entire structure of which this Buffer is part, starting /// Clones the entire structure of which this Buffer is part,
/// with the master and cloning all the children, too. /// cloning all the children, too.
Buffer * cloneFromMaster() const; Buffer * cloneWithChildren() const;
/// Just clones this single Buffer. For autosave. /// Just clones this single Buffer. For autosave.
Buffer * cloneBufferOnly() const; Buffer * cloneBufferOnly() const;
/// ///

View File

@ -3656,10 +3656,10 @@ bool GuiView::GuiViewPrivate::asyncBufferProcessing(
#if EXPORT_in_THREAD #if EXPORT_in_THREAD
if (allow_async) { if (allow_async) {
GuiViewPrivate::busyBuffers.insert(used_buffer); GuiViewPrivate::busyBuffers.insert(used_buffer);
Buffer * cloned_buffer = used_buffer->cloneFromMaster(); Buffer * cloned_buffer = used_buffer->cloneWithChildren();
if (!cloned_buffer) { if (!cloned_buffer) {
Alert::error(_("Export Error"), Alert::error(_("Export Error"),
_("Error cloning the Buffer.")); _("Error cloning the Buffer."));
return false; return false;
} }
QFuture<Buffer::ExportStatus> f = QtConcurrent::run( QFuture<Buffer::ExportStatus> f = QtConcurrent::run(