From e115b006e666cf81d801c224ef36cc9abe272223 Mon Sep 17 00:00:00 2001 From: Vincent van Ravesteijn Date: Sun, 28 Apr 2013 18:47:11 +0200 Subject: [PATCH] Make sure MarkAsExporting is deleted before buffer This fixes a crash when cutting something. --- src/CutAndPaste.cpp | 43 +++++++++++++++++++++++-------------------- 1 file changed, 23 insertions(+), 20 deletions(-) diff --git a/src/CutAndPaste.cpp b/src/CutAndPaste.cpp index b0af8753cc..35e7f748a0 100644 --- a/src/CutAndPaste.cpp +++ b/src/CutAndPaste.cpp @@ -504,26 +504,29 @@ void putClipboard(ParagraphList const & paragraphs, // applications, the number that can parse it should go up in the future. buffer->params().html_math_output = BufferParams::MathML; - // The Buffer is being used to export. This is necessary so that the - // updateMacros call will record the needed information. - MarkAsExporting mex(buffer); - - buffer->updateBuffer(Buffer::UpdateMaster, OutputUpdate); - buffer->updateMacros(); - buffer->updateMacroInstances(OutputUpdate); - - // LyX's own format - string lyx; - ostringstream oslyx; - if (buffer->write(oslyx)) - lyx = oslyx.str(); - - // XHTML format - odocstringstream oshtml; - OutputParams runparams(encodings.fromLyXName("utf8")); - buffer->writeLyXHTMLSource(oshtml, runparams, Buffer::FullSource); - - theClipboard().put(lyx, oshtml.str(), plaintext); + // Make sure MarkAsExporting is deleted before buffer is + { + // The Buffer is being used to export. This is necessary so that the + // updateMacros call will record the needed information. + MarkAsExporting mex(buffer); + + buffer->updateBuffer(Buffer::UpdateMaster, OutputUpdate); + buffer->updateMacros(); + buffer->updateMacroInstances(OutputUpdate); + + // LyX's own format + string lyx; + ostringstream oslyx; + if (buffer->write(oslyx)) + lyx = oslyx.str(); + + // XHTML format + odocstringstream oshtml; + OutputParams runparams(encodings.fromLyXName("utf8")); + buffer->writeLyXHTMLSource(oshtml, runparams, Buffer::FullSource); + + theClipboard().put(lyx, oshtml.str(), plaintext); + } // Save that memory delete buffer; -- 2.39.2