X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2FBuffer.cpp;h=117cfe0ca7e5ba5ec100d56e2670635a16f1fe11;hb=1744b6f9edc58a938da97facc3164d623809d2a3;hp=c6ce92aa97857552ba0dd3e2f1d395b6cfd9edaf;hpb=2d6173d810325c33485cead66a643ca36d6ead62;p=lyx.git diff --git a/src/Buffer.cpp b/src/Buffer.cpp index c6ce92aa97..117cfe0ca7 100644 --- a/src/Buffer.cpp +++ b/src/Buffer.cpp @@ -449,23 +449,24 @@ void Buffer::clone(BufferMap & bufmap) const // math macro caches need to be rethought and simplified. // I am not sure wether we should handle Buffer cloning here or in BufferList. // Right now BufferList knows nothing about buffer clones. - Impl::BufferPositionMap::iterator it = d->children_positions.begin(); - Impl::BufferPositionMap::iterator end = d->children_positions.end(); + Impl::PositionScopeBufferMap::iterator it = d->position_to_children.begin(); + Impl::PositionScopeBufferMap::iterator end = d->position_to_children.end(); for (; it != end; ++it) { - DocIterator dit = it->second.clone(buffer_clone); + DocIterator dit = it->first.clone(buffer_clone); dit.setBuffer(buffer_clone); - Buffer * child = const_cast(it->first); + Buffer * child = const_cast(it->second.second); child->clone(bufmap); - BufferMap::iterator it = bufmap.find(child); - LASSERT(it != bufmap.end(), continue); - Buffer * child_clone = it->second; + BufferMap::iterator const bit = bufmap.find(child); + LASSERT(bit != bufmap.end(), continue); + Buffer * child_clone = bit->second; Inset * inset = dit.nextInset(); LASSERT(inset && inset->lyxCode() == INCLUDE_CODE, continue); InsetInclude * inset_inc = static_cast(inset); inset_inc->setChildBuffer(child_clone); child_clone->d->setParent(buffer_clone); + // FIXME Do we need to do this now, or can we wait until we run updateMacros()? buffer_clone->setChild(dit, child_clone); } buffer_clone->d->macro_lock = false;