mirror of
https://git.lyx.org/repos/lyx.git
synced 2024-11-23 10:18:50 +00:00
Fic crash for repeated pasting from complex docs
Using a cloned buffer was an idea by Richard, and it works well.
This commit is contained in:
parent
ed2f6a8599
commit
928dc03324
@ -478,12 +478,17 @@ void putClipboard(ParagraphList const & paragraphs,
|
|||||||
// to be so, but the alternative is to construct a new one of these (with a
|
// to be so, but the alternative is to construct a new one of these (with a
|
||||||
// new temporary directory, etc) every time, and then to destroy it. So maybe
|
// new temporary directory, etc) every time, and then to destroy it. So maybe
|
||||||
// it's worth just keeping this one around.
|
// it's worth just keeping this one around.
|
||||||
static Buffer * buffer = theBufferList().newInternalBuffer(
|
Buffer * staticbuffer = theBufferList().newInternalBuffer(
|
||||||
FileName::tempName("clipboard.internal").absFileName());
|
FileName::tempName("clipboard.internal").absFileName());
|
||||||
|
|
||||||
// These two things only really need doing the first time.
|
// These two things only really need doing the first time.
|
||||||
buffer->setUnnamed(true);
|
staticbuffer->setUnnamed(true);
|
||||||
buffer->inset().setBuffer(*buffer);
|
staticbuffer->inset().setBuffer(*staticbuffer);
|
||||||
|
|
||||||
|
// Use a clone for the complicated stuff so that we do not need to clean
|
||||||
|
// up in order to avoid a crash.
|
||||||
|
Buffer * buffer = staticbuffer->cloneBufferOnly();
|
||||||
|
LASSERT(buffer, return);
|
||||||
|
|
||||||
// This needs doing every time.
|
// This needs doing every time.
|
||||||
buffer->params().setDocumentClass(docclass);
|
buffer->params().setDocumentClass(docclass);
|
||||||
@ -521,7 +526,7 @@ void putClipboard(ParagraphList const & paragraphs,
|
|||||||
theClipboard().put(lyx, oshtml.str(), plaintext);
|
theClipboard().put(lyx, oshtml.str(), plaintext);
|
||||||
|
|
||||||
// Save that memory
|
// Save that memory
|
||||||
buffer->paragraphs().clear();
|
delete buffer;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user