diff options
author | Michael Meeks <michael.meeks@collabora.com> | 2014-09-26 15:14:46 +0100 |
---|---|---|
committer | Michael Meeks <michael.meeks@collabora.com> | 2014-09-26 15:19:58 +0100 |
commit | bcded1804340106b65a5ef0fc6aaef6075fd73cf (patch) | |
tree | 8fc4f78d348a4d77bdecafb40f91bcfb1b2788d2 /sc | |
parent | f6c6474ddea7dfdb63d5b67a0b637c8c41fa4d13 (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')
-rw-r--r-- | sc/source/filter/oox/richstring.cxx | 5 |
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 ) |