From a6ff55e5394d2b43a7927f83d8d2f4506fc8e01d Mon Sep 17 00:00:00 2001 From: Vincent van Ravesteijn Date: Mon, 24 Aug 2009 23:02:50 +0000 Subject: [PATCH] Fix a crash when copying flex insets to another document. I know that Inset has a buffer, but we should be careful when handling Insets in CutAndPaste, these don't always have a buffer. Besides, we are in the function switchBetweenClasses(oldone, newone). Then it's pretty strange to ask the flex inset whether it is defined in its buffer->textclass, while we have an explicit new textclass defined. git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@31223 a592a061-630c-0410-9148-cb99ea01b6c8 --- src/CutAndPaste.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/CutAndPaste.cpp b/src/CutAndPaste.cpp index 9606377497..944119f965 100644 --- a/src/CutAndPaste.cpp +++ b/src/CutAndPaste.cpp @@ -608,7 +608,10 @@ void switchBetweenClasses(DocumentClass const * const oldone, if (it->lyxCode() != FLEX_CODE) // FIXME: Should we verify all InsetCollapsable? continue; - if (!it->undefined()) + docstring const & n = newone->insetLayout(it->name()).name(); + bool const is_undefined = n.empty() || + n == DocumentClass::plainInsetLayout().name(); + if (!is_undefined) continue; // The flex inset is undefined in newtc docstring const s = bformat(_( -- 2.39.2