[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