basic/source/basmgr/vbahelper.cxx | 55 ++++++----------------- include/basic/vbahelper.hxx | 1 sfx2/source/notify/globalevents.cxx | 83 +++-------------------------------- sw/source/core/inc/noteurl.hxx | 9 ++- sw/source/core/text/noteurl.cxx | 15 ++---- sw/source/filter/basflt/fltshell.cxx | 52 ++++++++++----------- sw/source/filter/inc/fltshell.hxx | 14 +++-- 7 files changed, 71 insertions(+), 158 deletions(-)
New commits: commit 5ab60e85b1319e8bf0c698bc804bd78f3eb7a8ca Author: Michael Stahl <[email protected]> Date: Thu Sep 3 15:16:59 2015 +0200 sw: replace boost::ptr_vector with std::vector Change-Id: I477e7a809b572fd62b276afd44c8b140efb9d653 diff --git a/sw/source/core/inc/noteurl.hxx b/sw/source/core/inc/noteurl.hxx index e6e3492..427802c 100644 --- a/sw/source/core/inc/noteurl.hxx +++ b/sw/source/core/inc/noteurl.hxx @@ -21,7 +21,10 @@ #define INCLUDED_SW_SOURCE_CORE_INC_NOTEURL_HXX #include "swrect.hxx" -#include <boost/ptr_container/ptr_vector.hpp> + +#include <rtl/ustring.hxx> + +#include <vector> class ImageMap; class MapMode; @@ -44,7 +47,9 @@ public: class SwNoteURL { - boost::ptr_vector<SwURLNote> aList; +private: + std::vector<SwURLNote> m_List; + public: SwNoteURL() {} void InsertURLNote( const OUString& rURL, const OUString& rTarget, diff --git a/sw/source/core/text/noteurl.cxx b/sw/source/core/text/noteurl.cxx index 8057e1d..981a756 100644 --- a/sw/source/core/text/noteurl.cxx +++ b/sw/source/core/text/noteurl.cxx @@ -17,39 +17,38 @@ * the License at http://www.apache.org/licenses/LICENSE-2.0 . */ +#include "noteurl.hxx" + #include "swtypes.hxx" #include <vcl/outdev.hxx> #include <svtools/imaprect.hxx> #include <svtools/imap.hxx> -#include "noteurl.hxx" - // Global variable SwNoteURL *pNoteURL = NULL; void SwNoteURL::InsertURLNote( const OUString& rURL, const OUString& rTarget, const SwRect& rRect ) { - const size_t nCount = aList.size(); + const size_t nCount = m_List.size(); for( size_t i = 0; i < nCount; ++i ) - if( rRect == aList[i].GetRect() ) + if (rRect == m_List[i].GetRect()) return; - SwURLNote *pNew = new SwURLNote( rURL, rTarget, rRect ); - aList.push_back( pNew ); + m_List.push_back(SwURLNote(rURL, rTarget, rRect)); } void SwNoteURL::FillImageMap( ImageMap *pMap, const Point &rPos, const MapMode& rMap ) { OSL_ENSURE( pMap, "FillImageMap: No ImageMap, no cookies!" ); - const size_t nCount = aList.size(); + const size_t nCount = m_List.size(); if( nCount ) { MapMode aMap( MAP_100TH_MM ); for( size_t i = 0; i < nCount; ++i ) { - const SwURLNote &rNote = aList[i]; + const SwURLNote &rNote = m_List[i]; SwRect aSwRect( rNote.GetRect() ); aSwRect -= rPos; Rectangle aRect( OutputDevice::LogicToLogic( aSwRect.SVRect(), commit fdc839390338f2882c1116362c39e197ce27b394 Author: Michael Stahl <[email protected]> Date: Thu Sep 3 15:08:35 2015 +0200 sw: replace boost::ptr_deque with std::deque<std::unique_ptr> Change-Id: Ibb51b67d4d9568577b73a43411322fb5d09bb399 diff --git a/sw/source/filter/basflt/fltshell.cxx b/sw/source/filter/basflt/fltshell.cxx index 6ef14e5..9c56334 100644 --- a/sw/source/filter/basflt/fltshell.cxx +++ b/sw/source/filter/basflt/fltshell.cxx @@ -172,7 +172,7 @@ SwFltControlStack::SwFltControlStack(SwDoc* pDo, sal_uLong nFieldFl) SwFltControlStack::~SwFltControlStack() { - OSL_ENSURE(maEntries.empty(), "There are still Attributes on the stack"); + OSL_ENSURE(m_Entries.empty(), "There are still Attributes on the stack"); } // MoveAttrs() is meant to address the following problem: @@ -184,13 +184,13 @@ SwFltControlStack::~SwFltControlStack() // same paragraph further out by one character. void SwFltControlStack::MoveAttrs( const SwPosition& rPos ) { - size_t nCnt = maEntries.size(); + size_t nCnt = m_Entries.size(); sal_uLong nPosNd = rPos.nNode.GetIndex(); sal_uInt16 nPosCt = rPos.nContent.GetIndex() - 1; for (size_t i=0; i < nCnt; ++i) { - SwFltStackEntry& rEntry = maEntries[i]; + SwFltStackEntry& rEntry = *m_Entries[i]; if ( (rEntry.m_aMkPos.m_nNode.GetIndex()+1 == nPosNd) && (rEntry.m_aMkPos.m_nContent >= nPosCt) @@ -216,9 +216,9 @@ void SwFltControlStack::MoveAttrs( const SwPosition& rPos ) void SwFltControlStack::MarkAllAttrsOld() { - size_t nCnt = maEntries.size(); + size_t nCnt = m_Entries.size(); for (size_t i=0; i < nCnt; ++i) - maEntries[i].bOld = true; + m_Entries[i]->bOld = true; } namespace @@ -256,17 +256,17 @@ void SwFltControlStack::NewAttr(const SwPosition& rPos, const SfxPoolItem& rAttr { SwFltStackEntry *pTmp = new SwFltStackEntry(rPos, rAttr.Clone() ); pTmp->SetStartCP(GetCurrAttrCP()); - maEntries.push_back(pTmp); + m_Entries.push_back(std::unique_ptr<SwFltStackEntry>(pTmp)); } } void SwFltControlStack::DeleteAndDestroy(Entries::size_type nCnt) { - OSL_ENSURE(nCnt < maEntries.size(), "Out of range!"); - if (nCnt < maEntries.size()) + OSL_ENSURE(nCnt < m_Entries.size(), "Out of range!"); + if (nCnt < m_Entries.size()) { - myEIter aElement = maEntries.begin() + nCnt; - maEntries.erase(aElement); + myEIter aElement = m_Entries.begin() + nCnt; + m_Entries.erase(aElement); } //Clear the para end position recorded in reader intermittently for the least impact on loading performance //Because the attributes handled based on the unit of para @@ -285,12 +285,12 @@ void SwFltControlStack::DeleteAndDestroy(Entries::size_type nCnt) // graphic apos -> images. void SwFltControlStack::StealAttr(const SwNodeIndex& rNode, sal_uInt16 nAttrId) { - size_t nCnt = maEntries.size(); + size_t nCnt = m_Entries.size(); while (nCnt) { nCnt --; - SwFltStackEntry& rEntry = maEntries[nCnt]; + SwFltStackEntry& rEntry = *m_Entries[nCnt]; if (rEntry.m_aPtPos.m_nNode.GetIndex()+1 == rNode.GetIndex() && (!nAttrId || nAttrId == rEntry.pAttr->Which())) { @@ -307,11 +307,11 @@ void SwFltControlStack::KillUnlockedAttrs(const SwPosition& rPos) { SwFltPosition aFltPos(rPos); - size_t nCnt = maEntries.size(); + size_t nCnt = m_Entries.size(); while( nCnt ) { nCnt --; - SwFltStackEntry& rEntry = maEntries[nCnt]; + SwFltStackEntry& rEntry = *m_Entries[nCnt]; if( !rEntry.bOld && !rEntry.bOpen && (rEntry.m_aMkPos == aFltPos) @@ -338,12 +338,12 @@ SwFltStackEntry* SwFltControlStack::SetAttr(const SwPosition& rPos, (RES_FLTRATTR_BEGIN <= nAttrId && RES_FLTRATTR_END > nAttrId), "Wrong id for attribute"); - myEIter aI = maEntries.begin(); - while (aI != maEntries.end()) + myEIter aI = m_Entries.begin(); + while (aI != m_Entries.end()) { - bool bLastEntry = aI == maEntries.end() - 1; + bool bLastEntry = aI == m_Entries.end() - 1; - SwFltStackEntry& rEntry = *aI; + SwFltStackEntry& rEntry = **aI; if (rEntry.bOpen) { // set end of attribute @@ -413,7 +413,7 @@ SwFltStackEntry* SwFltControlStack::SetAttr(const SwPosition& rPos, } } SetAttrInDoc(rPos, rEntry); - aI = maEntries.erase(aI); + aI = m_Entries.erase(aI); } return pRet; @@ -490,7 +490,7 @@ bool SwFltControlStack::HasSdOD() { bool bRet = false; - for (Entries::iterator it = maEntries.begin(); it != maEntries.end(); ++it) + for (auto const& it : m_Entries) { SwFltStackEntry& rEntry = *it; if ( rEntry.mnStartCP == rEntry.mnEndCP ) @@ -728,13 +728,13 @@ bool SwFltControlStack::CheckSdOD(sal_Int32 /*nStart*/, sal_Int32 /*nEnd*/) SfxPoolItem* SwFltControlStack::GetFormatStackAttr(sal_uInt16 nWhich, sal_uInt16 * pPos) { - size_t nSize = maEntries.size(); + size_t nSize = m_Entries.size(); while (nSize) { // is it the looked-for attribute ? (only applies to locked, meaning // currently set attributes!!) - SwFltStackEntry &rEntry = maEntries[--nSize]; + SwFltStackEntry &rEntry = *m_Entries[--nSize]; if (rEntry.bOpen && rEntry.pAttr->Which() == nWhich) { if (pPos) @@ -749,11 +749,11 @@ const SfxPoolItem* SwFltControlStack::GetOpenStackAttr(const SwPosition& rPos, s { SwFltPosition aFltPos(rPos); - size_t nSize = maEntries.size(); + size_t nSize = m_Entries.size(); while (nSize) { - SwFltStackEntry &rEntry = maEntries[--nSize]; + SwFltStackEntry &rEntry = *m_Entries[--nSize]; if (rEntry.bOpen && rEntry.pAttr->Which() == nWhich && rEntry.m_aMkPos == aFltPos) { return rEntry.pAttr; @@ -779,9 +779,9 @@ void SwFltControlStack::Delete(const SwPaM &rPam) if (aEndNode != aStartNode) return; - for (size_t nSize = maEntries.size(); nSize > 0;) + for (size_t nSize = m_Entries.size(); nSize > 0;) { - SwFltStackEntry& rEntry = maEntries[--nSize]; + SwFltStackEntry& rEntry = *m_Entries[--nSize]; bool bEntryStartAfterSelStart = (rEntry.m_aMkPos.m_nNode == aStartNode && diff --git a/sw/source/filter/inc/fltshell.hxx b/sw/source/filter/inc/fltshell.hxx index a406e7c..92235d9 100644 --- a/sw/source/filter/inc/fltshell.hxx +++ b/sw/source/filter/inc/fltshell.hxx @@ -33,7 +33,9 @@ #include <IDocumentRedlineAccess.hxx> #include <boost/noncopyable.hpp> -#include <boost/ptr_container/ptr_deque.hpp> + +#include <memory> +#include <deque> class SwTOXBase; class SwField; @@ -131,9 +133,9 @@ public: class SW_DLLPUBLIC SwFltControlStack : private ::boost::noncopyable { - typedef boost::ptr_deque<SwFltStackEntry> Entries; + typedef std::deque<std::unique_ptr<SwFltStackEntry>> Entries; typedef Entries::iterator myEIter; - Entries maEntries; + Entries m_Entries; sal_uLong nFieldFlags; vcl::KeyCode aEmptyKeyCode; // fuer Bookmarks @@ -186,10 +188,10 @@ public: const SfxPoolItem* GetOpenStackAttr(const SwPosition& rPos, sal_uInt16 nWhich); void Delete(const SwPaM &rPam); - bool empty() const { return maEntries.empty(); } - Entries::size_type size() const { return maEntries.size(); } + bool empty() const { return m_Entries.empty(); } + Entries::size_type size() const { return m_Entries.size(); } SwFltStackEntry& operator[](Entries::size_type nIndex) - { return maEntries[nIndex]; } + { return *m_Entries[nIndex]; } void DeleteAndDestroy(Entries::size_type nCnt); }; commit 327ab3c03343a52734980b26821e4ca7f6553f2e Author: Michael Stahl <[email protected]> Date: Thu Sep 3 14:31:18 2015 +0200 sfx2: remove duplicative ModelCollectionEnumeration Use the comphelper equivalent. Change-Id: Iba0567948aeec1299191c759da6aa89b4aa014d8 diff --git a/sfx2/source/notify/globalevents.cxx b/sfx2/source/notify/globalevents.cxx index d1f4a47..1caafe1 100644 --- a/sfx2/source/notify/globalevents.cxx +++ b/sfx2/source/notify/globalevents.cxx @@ -33,6 +33,7 @@ #include <cppuhelper/interfacecontainer.hxx> #include <cppuhelper/supportsservice.hxx> #include <rtl/ref.hxx> +#include <comphelper/enumhelper.hxx> #include <sfx2/app.hxx> #include <sfx2/objsh.hxx> #include <sfx2/sfxbasemodel.hxx> @@ -55,28 +56,6 @@ public: typedef ::std::vector< css::uno::Reference< css::frame::XModel > > TModelList; -class ModelCollectionEnumeration : public ModelCollectionMutexBase - , public ::cppu::WeakImplHelper< css::container::XEnumeration > -{ -private: - TModelList m_lModels; - TModelList::iterator m_pEnumerationIt; - -public: - ModelCollectionEnumeration(); - virtual ~ModelCollectionEnumeration(); - void setModelList(const TModelList& rList); - - // css.container.XEnumeration - virtual sal_Bool SAL_CALL hasMoreElements() - throw(css::uno::RuntimeException, std::exception) SAL_OVERRIDE; - - virtual css::uno::Any SAL_CALL nextElement() - throw(css::container::NoSuchElementException, - css::lang::WrappedTargetException , - css::uno::RuntimeException, std::exception ) SAL_OVERRIDE; -}; - //TODO: remove support of obsolete document::XEventBroadcaster/Listener class SfxGlobalEvents_Impl : public ModelCollectionMutexBase @@ -178,55 +157,6 @@ private: TModelList::iterator impl_searchDoc(const css::uno::Reference< css::frame::XModel >& xModel); }; -ModelCollectionEnumeration::ModelCollectionEnumeration() - : ModelCollectionMutexBase( ) - , m_pEnumerationIt (m_lModels.begin()) -{ -} - -ModelCollectionEnumeration::~ModelCollectionEnumeration() -{ -} - -void ModelCollectionEnumeration::setModelList(const TModelList& rList) -{ - // SAFE -> - ::osl::ResettableMutexGuard aLock(m_aLock); - m_lModels = rList; - m_pEnumerationIt = m_lModels.begin(); - aLock.clear(); - // <- SAFE -} - -sal_Bool SAL_CALL ModelCollectionEnumeration::hasMoreElements() - throw(uno::RuntimeException, std::exception) -{ - // SAFE -> - ::osl::ResettableMutexGuard aLock(m_aLock); - return (m_pEnumerationIt != m_lModels.end()); - // <- SAFE -} - -uno::Any SAL_CALL ModelCollectionEnumeration::nextElement() - throw(container::NoSuchElementException, - lang::WrappedTargetException , - uno::RuntimeException, std::exception ) -{ - // SAFE -> - ::osl::ResettableMutexGuard aLock(m_aLock); - if (m_pEnumerationIt == m_lModels.end()) - throw container::NoSuchElementException( - OUString("End of model enumeration reached."), - static_cast< container::XEnumeration* >(this)); - uno::Reference< frame::XModel > xModel(*m_pEnumerationIt, uno::UNO_QUERY); - ++m_pEnumerationIt; - aLock.clear(); - // <- SAFE - - return uno::makeAny(xModel); -} - - SfxGlobalEvents_Impl::SfxGlobalEvents_Impl( const uno::Reference < uno::XComponentContext >& rxContext) : ModelCollectionMutexBase( ) , m_xJobExecutorListener( task::theJobExecutor::get( rxContext ), uno::UNO_QUERY_THROW ) @@ -429,11 +359,14 @@ uno::Reference< container::XEnumeration > SAL_CALL SfxGlobalEvents_Impl::createE { // SAFE -> ::osl::ResettableMutexGuard aLock(m_aLock); - ModelCollectionEnumeration* pEnum = new ModelCollectionEnumeration(); - pEnum->setModelList(m_lModels); + uno::Sequence<uno::Any> models(m_lModels.size()); + for (size_t i = 0; i < m_lModels.size(); ++i) + { + models[i] = uno::makeAny(m_lModels[i]); + } uno::Reference< container::XEnumeration > xEnum( - static_cast< container::XEnumeration* >(pEnum), - uno::UNO_QUERY); + static_cast<container::XEnumeration*>( + new ::comphelper::OAnyEnumeration(models))); aLock.clear(); // <- SAFE commit 3fb50fbe2b4951034bbe5b75aef5c88e8cd22382 Author: Michael Stahl <[email protected]> Date: Thu Sep 3 13:54:47 2015 +0200 basic: remove over-engineered XEnumeration service ... that was causing duplicate WeakImplHelper symbols now. Change-Id: Ibbf84a2059f30bfeb5c265adcafb4b56d2534dc8 diff --git a/basic/source/basmgr/vbahelper.cxx b/basic/source/basmgr/vbahelper.cxx index 09e07de..d62c79e 100644 --- a/basic/source/basmgr/vbahelper.cxx +++ b/basic/source/basmgr/vbahelper.cxx @@ -28,7 +28,6 @@ #include <com/sun/star/frame/ModuleManager.hpp> #include <com/sun/star/lang/XMultiServiceFactory.hpp> #include <comphelper/processfactory.hxx> -#include <cppuhelper/implbase.hxx> #include <rtl/instance.hxx> namespace basic { @@ -48,24 +47,12 @@ uno::Reference< frame::XModuleManager2 > lclCreateModuleManager() return frame::ModuleManager::create(xContext); } +typedef ::std::vector<uno::Reference<frame::XModel>> ModelVector; - -/** Implementation of an enumeration of all open documents of the same type. - */ -class DocumentsEnumeration : public ::cppu::WeakImplHelper< container::XEnumeration > -{ -public: - explicit DocumentsEnumeration( const uno::Reference< frame::XModel >& rxModel ); - virtual sal_Bool SAL_CALL hasMoreElements() throw (uno::RuntimeException, std::exception) SAL_OVERRIDE; - virtual uno::Any SAL_CALL nextElement() throw (container::NoSuchElementException, lang::WrappedTargetException, uno::RuntimeException, std::exception) SAL_OVERRIDE; -private: - typedef ::std::vector< uno::Reference< frame::XModel > > ModelVector; - ModelVector maModels; - ModelVector::iterator maModelIt; -}; - -DocumentsEnumeration::DocumentsEnumeration( const uno::Reference< frame::XModel >& rxModel ) +static ModelVector CreateDocumentsEnumeration( + const uno::Reference< frame::XModel >& rxModel) { + ModelVector models; try { uno::Reference< frame::XModuleManager2 > xModuleManager( lclCreateModuleManager() ); @@ -77,29 +64,15 @@ DocumentsEnumeration::DocumentsEnumeration( const uno::Reference< frame::XModel { uno::Reference< frame::XModel > xCurrModel( xEnumeration->nextElement(), uno::UNO_QUERY_THROW ); if( xModuleManager->identify( xCurrModel ) == aIdentifier ) - maModels.push_back( xCurrModel ); + models.push_back( xCurrModel ); } } catch(const uno::Exception& ) { } - maModelIt = maModels.begin(); -} - -sal_Bool SAL_CALL DocumentsEnumeration::hasMoreElements() throw (uno::RuntimeException, std::exception) -{ - return maModelIt != maModels.end(); -} - -uno::Any SAL_CALL DocumentsEnumeration::nextElement() throw (container::NoSuchElementException, lang::WrappedTargetException, uno::RuntimeException, std::exception) -{ - if( maModelIt == maModels.end() ) - throw container::NoSuchElementException(); - return uno::Any( *maModelIt++ ); + return models; } - - /** Locks or unlocks the controllers of the specified document model. */ void lclLockControllers( const uno::Reference< frame::XModel >& rxModel, bool bLockControllers ) @@ -156,15 +129,17 @@ typedef void (*ModifyDocumentFunc)( const uno::Reference< frame::XModel >&, bool */ void lclIterateDocuments( ModifyDocumentFunc pModifyDocumentFunc, const uno::Reference< frame::XModel >& rxModel, bool bModificator ) { - uno::Reference< container::XEnumeration > xDocumentsEnum( new DocumentsEnumeration( rxModel ) ); + ModelVector models(CreateDocumentsEnumeration(rxModel)); // iterate over all open documents - while( xDocumentsEnum->hasMoreElements() ) try - { - uno::Reference< frame::XModel > xCurrModel( xDocumentsEnum->nextElement(), uno::UNO_QUERY_THROW ); - pModifyDocumentFunc( xCurrModel, bModificator ); - } - catch(const uno::Exception& ) + for (auto const& xCurrModel : models) { + try + { + pModifyDocumentFunc(xCurrModel, bModificator); + } + catch (const uno::Exception&) + { + } } } diff --git a/include/basic/vbahelper.hxx b/include/basic/vbahelper.hxx index ee2dea3..a4572fc 100644 --- a/include/basic/vbahelper.hxx +++ b/include/basic/vbahelper.hxx @@ -20,7 +20,6 @@ #ifndef INCLUDED_BASIC_VBAHELPER_HXX #define INCLUDED_BASIC_VBAHELPER_HXX -#include <com/sun/star/container/XEnumeration.hpp> #include <com/sun/star/frame/XModel.hpp> #include <rtl/ustring.hxx> #include <basic/basicdllapi.h> _______________________________________________ Libreoffice-commits mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
