[Libreoffice-commits] core.git: sc/source

Michael Meeks michael.meeks at collabora.com
Fri Sep 26 07:20:18 PDT 2014


 sc/source/filter/oox/richstring.cxx |    5 +++++
 1 file changed, 5 insertions(+)

New commits:
commit bcded1804340106b65a5ef0fc6aaef6075fd73cf
Author: Michael Meeks <michael.meeks at collabora.com>
Date:   Fri Sep 26 15:14:46 2014 +0100

    fdo#84370 - xlsx threaded import - protect editeng.
    
    Sadly we need to hold the solar mutex for rich text import, cue
    massive lock contention on sheets packed with rich text cells;
    hopefully not a common case.
    
    Change-Id: I6a094a070b11c8b572fd8687be96110c4905e78d

diff --git a/sc/source/filter/oox/richstring.cxx b/sc/source/filter/oox/richstring.cxx
index 88a83c3..7149358 100644
--- a/sc/source/filter/oox/richstring.cxx
+++ b/sc/source/filter/oox/richstring.cxx
@@ -27,6 +27,8 @@
 #include "biffinputstream.hxx"
 #include "editutil.hxx"
 
+#include <vcl/svapp.hxx>
+
 namespace oox {
 namespace xls {
 
@@ -403,6 +405,9 @@ void RichString::convert( const Reference< XText >& rxText, bool bReplaceOld, co
     for( PortionVector::const_iterator aIt = maTextPortions.begin(), aEnd = maTextPortions.end(); aIt != aEnd; ++aIt )
         sString += (*aIt)->getText();
 
+    // fdo#84370 - diving into editeng is not thread safe.
+    SolarMutexGuard aGuard;
+
     rEE.SetText( sString );
 
     for( PortionVector::const_iterator aIt = maTextPortions.begin(), aEnd = maTextPortions.end(); aIt != aEnd; ++aIt )


More information about the Libreoffice-commits mailing list