From: Vincent van Ravesteijn Date: Sun, 28 Apr 2013 16:47:11 +0000 (+0200) Subject: Make sure MarkAsExporting is deleted before buffer X-Git-Tag: 2.1.0beta1~328 X-Git-Url: https://git.lyx.org/gitweb/?a=commitdiff_plain;h=e115b006e666cf81d801c224ef36cc9abe272223;p=features.git Make sure MarkAsExporting is deleted before buffer This fixes a crash when cutting something. --- 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;