summaryrefslogtreecommitdiff
path: root/sc/source
diff options
context:
space:
mode:
authorMichael Meeks <michael.meeks@collabora.com>2014-09-26 15:14:46 +0100
committerMichael Meeks <michael.meeks@collabora.com>2014-09-26 15:19:58 +0100
commitbcded1804340106b65a5ef0fc6aaef6075fd73cf (patch)
tree8fc4f78d348a4d77bdecafb40f91bcfb1b2788d2 /sc/source
parentf6c6474ddea7dfdb63d5b67a0b637c8c41fa4d13 (diff)
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
Diffstat (limited to 'sc/source')
-rw-r--r--sc/source/filter/oox/richstring.cxx5
1 files changed, 5 insertions, 0 deletions
diff --git a/sc/source/filter/oox/richstring.cxx b/sc/source/filter/oox/richstring.cxx
index 88a83c32bbd1..7149358bc883 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 )