* Dissolving a branch inset in the child works.

Restoring via Ctrl-Z leads to a *crash*: The LyX window dissapears and the
  console shows the output:
The cause of this crash is similar. It's another updateLabels/updateMacros problem. I've got a fix for it in trunk, but not yet in branch.

Try the attached.

rh

Index: src/buffer_funcs.cpp
===================================================================
--- src/buffer_funcs.cpp	(revision 28753)
+++ src/buffer_funcs.cpp	(working copy)
@@ -479,6 +479,8 @@
 // the contents of the paragraphs.
 void updateLabels(Buffer const & buf, bool childonly)
 {
+	// Do this immediately, before something causes a crash.
+	buf.inset().setBuffer(const_cast<Buffer &>(buf));
 	// Use the master text class also for child documents
 	Buffer const * const master = buf.masterBuffer();
 	DocumentClass const & textclass = master->params().documentClass();
@@ -512,7 +514,6 @@
 
 	// update all caches
 	buf.clearReferenceCache();
-	buf.inset().setBuffer(const_cast<Buffer &>(buf));
 	buf.updateMacros();
 
 	Buffer & cbuf = const_cast<Buffer &>(buf);

Reply via email to