From 9575edc8ae21e4dd060a7d228cad98e54b490458 Mon Sep 17 00:00:00 2001 From: Kohei Yoshida Date: Fri, 8 Nov 2013 09:51:23 -0500 Subject: We don't need to put this in a separate thread. We can do this on the main thread. Change-Id: I58a32d9e0ce2599c5822903393a5b698233599df --- sc/source/filter/oox/formulabuffer.cxx | 36 +++++++++++----------------------- 1 file changed, 11 insertions(+), 25 deletions(-) (limited to 'sc/source/filter/oox/formulabuffer.cxx') 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 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 WorkerThreadRef; std::vector aThreads; - aThreads.reserve(mnThreadCount); + aThreads.reserve(nThreadCount); std::vector::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 xThreadMgr(new FinalizeThread(*this, 1)); - xThreadMgr->launch(); - - if (xThreadMgr.is()) - xThreadMgr->join(); xFormulaBar->setPosition( 1.0 ); } -- cgit