Kaydet (Commit) bcded180 authored tarafından Michael Meeks's avatar Michael Meeks

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
üst f6c6474d
...@@ -27,6 +27,8 @@ ...@@ -27,6 +27,8 @@
#include "biffinputstream.hxx" #include "biffinputstream.hxx"
#include "editutil.hxx" #include "editutil.hxx"
#include <vcl/svapp.hxx>
namespace oox { namespace oox {
namespace xls { namespace xls {
...@@ -403,6 +405,9 @@ void RichString::convert( const Reference< XText >& rxText, bool bReplaceOld, co ...@@ -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 ) for( PortionVector::const_iterator aIt = maTextPortions.begin(), aEnd = maTextPortions.end(); aIt != aEnd; ++aIt )
sString += (*aIt)->getText(); sString += (*aIt)->getText();
// fdo#84370 - diving into editeng is not thread safe.
SolarMutexGuard aGuard;
rEE.SetText( sString ); rEE.SetText( sString );
for( PortionVector::const_iterator aIt = maTextPortions.begin(), aEnd = maTextPortions.end(); aIt != aEnd; ++aIt ) for( PortionVector::const_iterator aIt = maTextPortions.begin(), aEnd = maTextPortions.end(); aIt != aEnd; ++aIt )
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment