sc/source/core/data/postit.cxx | 4 +--- sc/source/filter/xml/xmlwrap.cxx | 14 ++++++++++++++ 2 files changed, 15 insertions(+), 3 deletions(-)
New commits: commit 4d73205ae4227a90d2087153c6fc82a51ea513ae Author: Eike Rathke <er...@redhat.com> Date: Sat Nov 19 19:32:04 2016 +0100 strip now obsolete comment part ... but keep the SdrDelayBroadcastObjectChange as it still serves during copying notes/captions. Change-Id: I8cf6a8045238af8d196a304ca4dfe20d4e407624 diff --git a/sc/source/core/data/postit.cxx b/sc/source/core/data/postit.cxx index 623a199..27dfb65 100644 --- a/sc/source/core/data/postit.cxx +++ b/sc/source/core/data/postit.cxx @@ -640,9 +640,7 @@ void ScPostIt::CreateCaptionFromInitData( const ScAddress& rPos ) const ScNoteCaptionCreator aCreator( mrDoc, rPos, maNoteData ); if( maNoteData.mpCaption ) { - // Prevent triple change broadcasts of the same object, which - // during Save triggered by ScDocument::CreateAllNoteCaptions() - // creates a major performance bottleneck. + // Prevent triple change broadcasts of the same object. SdrDelayBroadcastObjectChange aDelayChange( *maNoteData.mpCaption); ScCaptionInitData& rInitData = *maNoteData.mxInitData; commit 190495509e7830a5df12d002c56222209edc348d Author: Eike Rathke <er...@redhat.com> Date: Sat Nov 19 19:28:14 2016 +0100 sc-perf: lock drawing layer during creation of captions for Save This gives an extra boost compared to commit 451c4cccc7e3ec3f1e046d3232cb52f6fc443f59 (see there for further details) as it eliminates broadcasts to accessibility and thus obtaining text forwarders and what not. ScPostIt::CreateCaptionFromInitData() compared to that commit from 145,055,889,118 to 63,386,691,509 Overall ScDocShell::SaveXML() from original state before that commit Before: 370,433,720,090 After: 107,468,180,524 Reduced to 29% or speed-up by factor 3.45 Change-Id: Ife86476c9654739ed9adf25e775f7568ea9934c2 diff --git a/sc/source/filter/xml/xmlwrap.cxx b/sc/source/filter/xml/xmlwrap.cxx index 7aa54c0..f170f31 100644 --- a/sc/source/filter/xml/xmlwrap.cxx +++ b/sc/source/filter/xml/xmlwrap.cxx @@ -719,8 +719,22 @@ bool ScXMLImportWrapper::ExportToComponent(const uno::Reference<uno::XComponentC bool ScXMLImportWrapper::Export(bool bStylesOnly) { + // Prevent all broadcasting and repaints and notification of accessibility + // during mass creation of captions, which is a major bottleneck and not + // needed during Save. + ScDrawLayer* pDrawLayer = rDoc.GetDrawLayer(); + bool bOldLock = bool(); + if (pDrawLayer) + { + bOldLock = pDrawLayer->isLocked(); + pDrawLayer->setLock(true); + } + rDoc.CreateAllNoteCaptions(); + if (pDrawLayer) + pDrawLayer->setLock(bOldLock); + uno::Reference<uno::XComponentContext> xContext(comphelper::getProcessComponentContext()); uno::Reference<xml::sax::XWriter> xWriter = xml::sax::Writer::create(xContext); _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits