diff options
author | Kohei Yoshida <kohei.yoshida@collabora.com> | 2013-11-08 09:51:23 -0500 |
---|---|---|
committer | Kohei Yoshida <kohei.yoshida@collabora.com> | 2013-11-11 16:17:28 -0500 |
commit | 9575edc8ae21e4dd060a7d228cad98e54b490458 (patch) | |
tree | 4de19007a3c98ab18e1ae091ef4c1d3238004eb2 /sc/source | |
parent | a4a60b677cd31ecaf040abce20da256fed06523c (diff) |
We don't need to put this in a separate thread.
We can do this on the main thread.
Change-Id: I58a32d9e0ce2599c5822903393a5b698233599df
Diffstat (limited to 'sc/source')
-rw-r--r-- | sc/source/filter/inc/formulabuffer.hxx | 14 | ||||
-rw-r--r-- | sc/source/filter/oox/formulabuffer.cxx | 36 |
2 files changed, 11 insertions, 39 deletions
diff --git a/sc/source/filter/inc/formulabuffer.hxx b/sc/source/filter/inc/formulabuffer.hxx index 7e881ee96ee2..2411466787d0 100644 --- a/sc/source/filter/inc/formulabuffer.hxx +++ b/sc/source/filter/inc/formulabuffer.hxx @@ -31,20 +31,6 @@ namespace oox { namespace xls { class FormulaBuffer : public WorkbookHelper { - class FinalizeThread : public salhelper::Thread - { - FormulaBuffer& mrParent; - size_t mnThreadCount; - public: - FinalizeThread( FormulaBuffer& rParent, size_t nThreadCount ); - virtual ~FinalizeThread(); - - protected: - virtual void execute(); - }; - - friend class FinalizeThread; - public: /** * Represents a shared formula definition. diff --git a/sc/source/filter/oox/formulabuffer.cxx b/sc/source/filter/oox/formulabuffer.cxx index f58e9f739a71..fa8e06ac4a5f 100644 --- a/sc/source/filter/oox/formulabuffer.cxx +++ b/sc/source/filter/oox/formulabuffer.cxx @@ -214,15 +214,16 @@ FormulaBuffer::SheetItem::SheetItem() : mpSharedFormulaEntries(NULL), mpSharedFormulaIDs(NULL) {} -FormulaBuffer::FinalizeThread::FinalizeThread( FormulaBuffer& rParent, size_t nThreadCount ) : - salhelper::Thread("xlsx-import-formula-buffer-finalize-thread"), - mrParent(rParent), mnThreadCount(nThreadCount) {} - -FormulaBuffer::FinalizeThread::~FinalizeThread() {} +FormulaBuffer::FormulaBuffer( const WorkbookHelper& rHelper ) : WorkbookHelper( rHelper ) +{ +} -void FormulaBuffer::FinalizeThread::execute() +void FormulaBuffer::finalizeImport() { - ScDocumentImport& rDoc = mrParent.getDocImport(); + ISegmentProgressBarRef xFormulaBar = getProgressBar().createSegment( getProgressBar().getFreeLength() ); + + const size_t nThreadCount = 1; + ScDocumentImport& rDoc = getDocImport(); rDoc.getDoc().SetAutoNameCache(new ScAutoNameCache(&rDoc.getDoc())); ScExternalRefManager::ApiGuard aExtRefGuard(&rDoc.getDoc()); @@ -232,11 +233,11 @@ void FormulaBuffer::FinalizeThread::execute() std::vector<SheetItem> aSheetItems; aSheetItems.reserve(nTabCount); for (SCTAB nTab = 0; nTab < nTabCount; ++nTab) - aSheetItems.push_back(mrParent.getSheetItem(nTab)); + aSheetItems.push_back(getSheetItem(nTab)); typedef rtl::Reference<WorkerThread> WorkerThreadRef; std::vector<WorkerThreadRef> aThreads; - aThreads.reserve(mnThreadCount); + aThreads.reserve(nThreadCount); std::vector<SheetItem>::iterator it = aSheetItems.begin(), itEnd = aSheetItems.end(); @@ -246,7 +247,7 @@ void FormulaBuffer::FinalizeThread::execute() // lack. while (it != itEnd) { - for (size_t i = 0; i < mnThreadCount; ++i) + for (size_t i = 0; i < nThreadCount; ++i) { if (it == itEnd) break; @@ -267,21 +268,6 @@ void FormulaBuffer::FinalizeThread::execute() } rDoc.getDoc().SetAutoNameCache(NULL); -} - -FormulaBuffer::FormulaBuffer( const WorkbookHelper& rHelper ) : WorkbookHelper( rHelper ) -{ -} - -void FormulaBuffer::finalizeImport() -{ - ISegmentProgressBarRef xFormulaBar = getProgressBar().createSegment( getProgressBar().getFreeLength() ); - - rtl::Reference<FinalizeThread> xThreadMgr(new FinalizeThread(*this, 1)); - xThreadMgr->launch(); - - if (xThreadMgr.is()) - xThreadMgr->join(); xFormulaBar->setPosition( 1.0 ); } |