(Sending again this message from 21/01/2017 which neither bounced nor made it to the list.)

Le 26/01/2017 à 20:05, Richard Heck a écrit :

This looks familiar. There was a crash a month or two ago, maybe, that
also happened during reload (see #9 below) due to invalid cursors.
Guillaume, I think you were the one who fixed that other problem?



I think you are looking for 3d6a7a12. Well, the call to Cursor::sanitize
in the trace was precisely introduced to solve this other crash. Maybe
the more brutal fixIfBroken is necessary? As I cannot reproduce, please
tell me if it fixes the crash. Then I wonder whether it shows a bug in
sanitize (unrelated to the current shortfall of the inset cache
implementation discussed previously) or whether I just called sanitize
inappropriately for some undocumented notion of inappropriate.

Guillaume

diff --git a/src/frontends/qt4/GuiView.cpp b/src/frontends/qt4/GuiView.cpp
index a6b5877..7edbcc5 100644
--- a/src/frontends/qt4/GuiView.cpp
+++ b/src/frontends/qt4/GuiView.cpp
@@ -1655,7 +1655,7 @@ void GuiView::structureChanged()
 	// This is called from the Buffer, which has no way to ensure that cursors
 	// in BufferView remain valid.
 	if (documentBufferView())
-		documentBufferView()->cursor().sanitize();
+		documentBufferView()->cursor().fixIfBroken();
 	// FIXME: This is slightly expensive, though less than the tocBackend update
 	// (#9880). This also resets the view in the Toc Widget (#6675).
 	d.toc_models_.reset(documentBufferView());

Reply via email to