sc/inc/document.hxx | 7 ++----- sc/inc/externalrefmgr.hxx | 6 ------ sc/source/core/data/documen2.cxx | 4 ++-- sc/source/core/data/documen3.cxx | 27 ++++++++------------------- sc/source/ui/docshell/externalrefmgr.cxx | 26 -------------------------- 5 files changed, 12 insertions(+), 58 deletions(-)
New commits: commit d4e1ed6c75d5b28e729969c6d21f93ac82c1d7a8 Author: Kohei Yoshida <kohei.yosh...@collabora.com> Date: Fri Nov 8 10:26:47 2013 -0500 Remove mutexes from external ref manager. Change-Id: I4857bb3a1804d4cd53c3e25a7586bd68ab95a202 diff --git a/sc/inc/externalrefmgr.hxx b/sc/inc/externalrefmgr.hxx index e7a5e79..c072cfd 100644 --- a/sc/inc/externalrefmgr.hxx +++ b/sc/inc/externalrefmgr.hxx @@ -768,12 +768,6 @@ private: private: ScDocument* mpDoc; - /** Mutex for accessing cached data and/or source document shells. */ - mutable osl::Mutex maMtxCacheAccess; - - /** Mutex for source document meta-data access. */ - mutable osl::Mutex maMtxSrcFiles; - /** cache of referenced ranges and names from source documents. */ ScExternalRefCache maRefCache; diff --git a/sc/source/ui/docshell/externalrefmgr.cxx b/sc/source/ui/docshell/externalrefmgr.cxx index 9c07fd7..c06490e 100644 --- a/sc/source/ui/docshell/externalrefmgr.cxx +++ b/sc/source/ui/docshell/externalrefmgr.cxx @@ -1606,7 +1606,6 @@ void ScExternalRefManager::getAllCachedNumberFormats(vector<sal_uInt32>& rNumFmt sal_uInt16 ScExternalRefManager::getExternalFileCount() const { - osl::MutexGuard aGuard(&maMtxSrcFiles); return static_cast< sal_uInt16 >( maSrcFiles.size() ); } @@ -1759,8 +1758,6 @@ ScExternalRefCache::TokenRef ScExternalRefManager::getSingleRefToken( sal_uInt16 nFileId, const OUString& rTabName, const ScAddress& rCell, const ScAddress* pCurPos, SCTAB* pTab, ScExternalRefCache::CellFormat* pFmt) { - osl::MutexGuard aGuard(&maMtxCacheAccess); - if (pCurPos) insertRefCell(nFileId, *pCurPos); @@ -1853,8 +1850,6 @@ ScExternalRefCache::TokenRef ScExternalRefManager::getSingleRefToken( ScExternalRefCache::TokenArrayRef ScExternalRefManager::getDoubleRefTokens( sal_uInt16 nFileId, const OUString& rTabName, const ScRange& rRange, const ScAddress* pCurPos) { - osl::MutexGuard aGuard(&maMtxCacheAccess); - if (pCurPos) insertRefCell(nFileId, *pCurPos); @@ -1901,8 +1896,6 @@ ScExternalRefCache::TokenArrayRef ScExternalRefManager::getDoubleRefTokens( ScExternalRefCache::TokenArrayRef ScExternalRefManager::getRangeNameTokens( sal_uInt16 nFileId, const OUString& rName, const ScAddress* pCurPos) { - osl::MutexGuard aGuard(&maMtxCacheAccess); - if (pCurPos) insertRefCell(nFileId, *pCurPos); @@ -1956,8 +1949,6 @@ bool hasRangeName(ScDocument& rDoc, const OUString& rName) bool ScExternalRefManager::isValidRangeName(sal_uInt16 nFileId, const OUString& rName) { - osl::MutexGuard aGuard(&maMtxCacheAccess); - maybeLinkExternalFile(nFileId); ScDocument* pSrcDoc = getInMemorySrcDocument(nFileId); if (pSrcDoc) @@ -2415,7 +2406,6 @@ void ScExternalRefManager::SrcFileData::maybeCreateRealFileName(const OUString& void ScExternalRefManager::maybeCreateRealFileName(sal_uInt16 nFileId) { - osl::MutexGuard aGuard(&maMtxSrcFiles); if (nFileId >= maSrcFiles.size()) return; @@ -2460,8 +2450,6 @@ void ScExternalRefManager::convertToAbsName(OUString& rFile) const sal_uInt16 ScExternalRefManager::getExternalFileId(const OUString& rFile) { - osl::MutexGuard aGuard(&maMtxSrcFiles); - vector<SrcFileData>::const_iterator itrBeg = maSrcFiles.begin(), itrEnd = maSrcFiles.end(); vector<SrcFileData>::const_iterator itr = find_if(itrBeg, itrEnd, FindSrcFileByName(rFile)); if (itr != itrEnd) @@ -2478,8 +2466,6 @@ sal_uInt16 ScExternalRefManager::getExternalFileId(const OUString& rFile) const OUString* ScExternalRefManager::getExternalFileName(sal_uInt16 nFileId, bool bForceOriginal) { - osl::MutexGuard aGuard(&maMtxSrcFiles); - if (nFileId >= maSrcFiles.size()) return NULL; @@ -2496,14 +2482,11 @@ const OUString* ScExternalRefManager::getExternalFileName(sal_uInt16 nFileId, bo bool ScExternalRefManager::hasExternalFile(sal_uInt16 nFileId) const { - osl::MutexGuard aGuard(&maMtxSrcFiles); return nFileId < maSrcFiles.size(); } bool ScExternalRefManager::hasExternalFile(const OUString& rFile) const { - osl::MutexGuard aGuard(&maMtxSrcFiles); - vector<SrcFileData>::const_iterator itrBeg = maSrcFiles.begin(), itrEnd = maSrcFiles.end(); vector<SrcFileData>::const_iterator itr = find_if(itrBeg, itrEnd, FindSrcFileByName(rFile)); return itr != itrEnd; @@ -2602,8 +2585,6 @@ void ScExternalRefManager::breakLink(sal_uInt16 nFileId) void ScExternalRefManager::switchSrcFile(sal_uInt16 nFileId, const OUString& rNewFile, const OUString& rNewFilter) { - osl::MutexGuard aGuard(&maMtxSrcFiles); - maSrcFiles[nFileId].maFileName = rNewFile; maSrcFiles[nFileId].maRelativeName = OUString(); maSrcFiles[nFileId].maRealFileName = OUString(); @@ -2618,8 +2599,6 @@ void ScExternalRefManager::switchSrcFile(sal_uInt16 nFileId, const OUString& rNe void ScExternalRefManager::setRelativeFileName(sal_uInt16 nFileId, const OUString& rRelUrl) { - osl::MutexGuard aGuard(&maMtxSrcFiles); - if (nFileId >= maSrcFiles.size()) return; maSrcFiles[nFileId].maRelativeName = rRelUrl; @@ -2627,8 +2606,6 @@ void ScExternalRefManager::setRelativeFileName(sal_uInt16 nFileId, const OUStrin void ScExternalRefManager::setFilterData(sal_uInt16 nFileId, const OUString& rFilterName, const OUString& rOptions) { - osl::MutexGuard aGuard(&maMtxSrcFiles); - if (nFileId >= maSrcFiles.size()) return; maSrcFiles[nFileId].maFilterName = rFilterName; @@ -2647,13 +2624,11 @@ void ScExternalRefManager::clear() bool ScExternalRefManager::hasExternalData() const { - osl::MutexGuard aGuard(&maMtxSrcFiles); return !maSrcFiles.empty(); } void ScExternalRefManager::resetSrcFileData(const OUString& rBaseFileUrl) { - osl::MutexGuard aGuard(&maMtxSrcFiles); for (vector<SrcFileData>::iterator itr = maSrcFiles.begin(), itrEnd = maSrcFiles.end(); itr != itrEnd; ++itr) { @@ -2669,7 +2644,6 @@ void ScExternalRefManager::resetSrcFileData(const OUString& rBaseFileUrl) void ScExternalRefManager::updateAbsAfterLoad() { - osl::MutexGuard aGuard(&maMtxSrcFiles); OUString aOwn( getOwnDocumentName() ); for (vector<SrcFileData>::iterator itr = maSrcFiles.begin(), itrEnd = maSrcFiles.end(); itr != itrEnd; ++itr) commit 55877708d9569789c394a9e28bac7a93d1137697 Author: Kohei Yoshida <kohei.yosh...@collabora.com> Date: Fri Nov 8 10:06:51 2013 -0500 Revert "Guard access to external ref manager instance." This reverts commit 7cf9ea71ad1364d00eaca95b309cc6c0f35cf6cb. diff --git a/sc/inc/document.hxx b/sc/inc/document.hxx index 08ba3a2..09f1466 100644 --- a/sc/inc/document.hxx +++ b/sc/inc/document.hxx @@ -39,7 +39,6 @@ #include "calcmacros.hxx" #include <tools/fract.hxx> #include <tools/gen.hxx> -#include "osl/mutex.hxx" #include <memory> #include <map> @@ -299,9 +298,7 @@ private: ::std::auto_ptr<ScDocProtection> pDocProtection; ::std::auto_ptr<ScClipParam> mpClipParam; - boost::scoped_ptr<ScExternalRefManager> mpExternalRefMgr; - mutable osl::Mutex maMtxExternalRefMgr; - + ::std::auto_ptr<ScExternalRefManager> pExternalRefMgr; ::std::auto_ptr<ScMacroManager> mpMacroMgr; @@ -664,7 +661,7 @@ public: const OUString& aFileName, const OUString& aTabName ); - SC_DLLPUBLIC bool HasExternalRefManager() const; + bool HasExternalRefManager() const { return pExternalRefMgr.get(); } SC_DLLPUBLIC ScExternalRefManager* GetExternalRefManager() const; bool IsInExternalReferenceMarking() const; void MarkUsedExternalReferences(); diff --git a/sc/source/core/data/documen2.cxx b/sc/source/core/data/documen2.cxx index 846b5c8..23a4bcf 100644 --- a/sc/source/core/data/documen2.cxx +++ b/sc/source/core/data/documen2.cxx @@ -150,7 +150,7 @@ ScDocument::ScDocument( ScDocumentMode eMode, SfxObjectShell* pDocShell ) : pCacheFieldEditEngine( NULL ), pDocProtection( NULL ), mpClipParam( NULL), - mpExternalRefMgr( NULL ), + pExternalRefMgr( NULL ), mpMacroMgr( NULL ), pViewOptions( NULL ), pDocOptions( NULL ), @@ -384,7 +384,7 @@ ScDocument::~ScDocument() mxFormulaParserPool.reset(); // Destroy the external ref mgr instance here because it has a timer // which needs to be stopped before the app closes. - mpExternalRefMgr.reset(); + pExternalRefMgr.reset(); ScAddInAsync::RemoveDocument( this ); ScAddInListener::RemoveDocument( this ); diff --git a/sc/source/core/data/documen3.cxx b/sc/source/core/data/documen3.cxx index 67fda15..73f8d71 100644 --- a/sc/source/core/data/documen3.cxx +++ b/sc/source/core/data/documen3.cxx @@ -582,41 +582,30 @@ bool ScDocument::LinkExternalTab( SCTAB& rTab, const OUString& aDocTab, return true; } -bool ScDocument::HasExternalRefManager() const -{ - osl::MutexGuard aGuard(&maMtxExternalRefMgr); - return mpExternalRefMgr.get(); -} - ScExternalRefManager* ScDocument::GetExternalRefManager() const { - osl::MutexGuard aGuard(&maMtxExternalRefMgr); - ScDocument* pThis = const_cast<ScDocument*>(this); - if (!mpExternalRefMgr.get()) - pThis->mpExternalRefMgr.reset( new ScExternalRefManager( pThis)); + if (!pExternalRefMgr.get()) + pThis->pExternalRefMgr.reset( new ScExternalRefManager( pThis)); - return mpExternalRefMgr.get(); + return pExternalRefMgr.get(); } bool ScDocument::IsInExternalReferenceMarking() const { - osl::MutexGuard aGuard(&maMtxExternalRefMgr); - return mpExternalRefMgr.get() && mpExternalRefMgr->isInReferenceMarking(); + return pExternalRefMgr.get() && pExternalRefMgr->isInReferenceMarking(); } void ScDocument::MarkUsedExternalReferences() { - osl::MutexGuard aGuard(&maMtxExternalRefMgr); - - if (!mpExternalRefMgr.get()) + if (!pExternalRefMgr.get()) return; - if (!mpExternalRefMgr->hasExternalData()) + if (!pExternalRefMgr->hasExternalData()) return; // Charts. - mpExternalRefMgr->markUsedByLinkListeners(); + pExternalRefMgr->markUsedByLinkListeners(); // Formula cells. - mpExternalRefMgr->markUsedExternalRefCells(); + pExternalRefMgr->markUsedExternalRefCells(); /* NOTE: Conditional formats and validation objects are marked when * collecting them during export. */ _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits