editeng/source/uno/unoedsrc.cxx | 4 ++-- editeng/source/uno/unotext2.cxx | 4 ++-- include/editeng/unoedsrc.hxx | 6 +++--- include/svx/ucsubset.hxx | 6 +++--- include/svx/unoshtxt.hxx | 2 +- svx/source/dialog/charmap.cxx | 8 ++++---- svx/source/unodraw/unoshtxt.cxx | 12 ++++++------ sw/inc/calbck.hxx | 4 ++-- sw/source/core/attr/calbck.cxx | 11 +++++++---- 9 files changed, 30 insertions(+), 27 deletions(-)
New commits: commit 115a8539038ecdd5e496fb6c84101c5b14d11068 Author: Noel Grandin <noel.gran...@collabora.co.uk> Date: Sun Apr 8 21:36:56 2018 +0200 std::list->std::vector in SubsetMap Change-Id: I3fa98b787707dcbc555abe6aaa3a11e0fe467308 Reviewed-on: https://gerrit.libreoffice.org/52606 Tested-by: Jenkins <c...@libreoffice.org> Reviewed-by: Noel Grandin <noel.gran...@collabora.co.uk> diff --git a/editeng/source/uno/unoedsrc.cxx b/editeng/source/uno/unoedsrc.cxx index 9e2aa24b34ad..1c827472d11b 100644 --- a/editeng/source/uno/unoedsrc.cxx +++ b/editeng/source/uno/unoedsrc.cxx @@ -34,9 +34,9 @@ void SvxEditSource::removeRange( SvxUnoTextRangeBase* ) } -const SvxUnoTextRangeBaseList& SvxEditSource::getRanges() const +const SvxUnoTextRangeBaseVec& SvxEditSource::getRanges() const { - static SvxUnoTextRangeBaseList gList; + static SvxUnoTextRangeBaseVec gList; return gList; } diff --git a/editeng/source/uno/unotext2.cxx b/editeng/source/uno/unotext2.cxx index 908485f86683..9c2c26151cfd 100644 --- a/editeng/source/uno/unotext2.cxx +++ b/editeng/source/uno/unotext2.cxx @@ -51,7 +51,7 @@ SvxUnoTextContentEnumeration::SvxUnoTextContentEnumeration( const SvxUnoTextBase { if( currentPara>=maSelection.nStartPara && currentPara<=maSelection.nEndPara ) { - const SvxUnoTextRangeBaseList& rRanges( mpEditSource->getRanges() ); + const SvxUnoTextRangeBaseVec& rRanges( mpEditSource->getRanges() ); SvxUnoTextContent* pContent = nullptr; sal_Int32 nStartPos = 0; sal_Int32 nEndPos = mrText.GetEditSource()->GetTextForwarder()->GetTextLen( currentPara ); @@ -405,7 +405,7 @@ SvxUnoTextRangeEnumeration::SvxUnoTextRangeEnumeration(const SvxUnoTextBase& rTe nEndPos = std::min<sal_uInt16>(nEndPos, mnSel.nEndPos); ESelection aSel( mnParagraph, nStartPos, mnParagraph, nEndPos ); - const SvxUnoTextRangeBaseList& rRanges( mpEditSource->getRanges() ); + const SvxUnoTextRangeBaseVec& rRanges( mpEditSource->getRanges() ); SvxUnoTextRange* pRange = nullptr; for (auto const& elemRange : rRanges) { diff --git a/include/editeng/unoedsrc.hxx b/include/editeng/unoedsrc.hxx index 327ad7aeae19..adfdae894aeb 100644 --- a/include/editeng/unoedsrc.hxx +++ b/include/editeng/unoedsrc.hxx @@ -30,7 +30,7 @@ #include <editeng/editengdllapi.h> #include <editeng/editeng.hxx> -#include <list> +#include <vector> struct ESelection; struct EFieldInfo; @@ -45,7 +45,7 @@ class SvxFieldItem; class SfxBroadcaster; class SvxUnoTextRangeBase; -typedef std::list< SvxUnoTextRangeBase* > SvxUnoTextRangeBaseList; +typedef std::vector< SvxUnoTextRangeBase* > SvxUnoTextRangeBaseVec; /** Wrapper class for unified EditEngine/Outliner access @@ -122,7 +122,7 @@ public: /** returns a const list of all text ranges that are registered for the underlying text object. */ - virtual const SvxUnoTextRangeBaseList& getRanges() const; + virtual const SvxUnoTextRangeBaseVec& getRanges() const; }; diff --git a/include/svx/ucsubset.hxx b/include/svx/ucsubset.hxx index ae5286ec3863..121b790d47eb 100644 --- a/include/svx/ucsubset.hxx +++ b/include/svx/ucsubset.hxx @@ -52,7 +52,7 @@ inline bool operator<(const Subset &rLHS, const Subset &rRHS) return rLHS.GetRangeMin() < rRHS.GetRangeMin(); } -typedef ::std::list<Subset> SubsetList; +typedef ::std::vector<Subset> SubsetVec; class SVX_DLLPUBLIC SubsetMap { @@ -60,10 +60,10 @@ public: SubsetMap( const FontCharMapRef& ); const Subset* GetSubsetByUnicode( sal_UCS4 ) const; - const SubsetList& GetSubsetMap() const; + const SubsetVec& GetSubsetMap() const; private: - SubsetList maSubsets; + SubsetVec maSubsets; SVX_DLLPRIVATE void InitList(); SVX_DLLPRIVATE void ApplyCharMap( const FontCharMapRef& ); diff --git a/include/svx/unoshtxt.hxx b/include/svx/unoshtxt.hxx index f16358d2432d..7cb75bd1f118 100644 --- a/include/svx/unoshtxt.hxx +++ b/include/svx/unoshtxt.hxx @@ -64,7 +64,7 @@ public: virtual void addRange( SvxUnoTextRangeBase* pNewRange ) override; virtual void removeRange( SvxUnoTextRangeBase* pOldRange ) override; - virtual const SvxUnoTextRangeBaseList& getRanges() const override; + virtual const SvxUnoTextRangeBaseVec& getRanges() const override; virtual SfxBroadcaster& GetBroadcaster() const override; diff --git a/svx/source/dialog/charmap.cxx b/svx/source/dialog/charmap.cxx index 31db13cf61f7..8565db970e6f 100644 --- a/svx/source/dialog/charmap.cxx +++ b/svx/source/dialog/charmap.cxx @@ -865,7 +865,7 @@ SubsetMap::SubsetMap( const FontCharMapRef& rxFontCharMap ) ApplyCharMap(rxFontCharMap); } -const SubsetList& SubsetMap::GetSubsetMap() const +const SubsetVec& SubsetMap::GetSubsetMap() const { return maSubsets; } @@ -885,7 +885,7 @@ inline Subset::Subset(sal_UCS4 nMin, sal_UCS4 nMax, const OUString& rName) void SubsetMap::InitList() { - static SubsetList aAllSubsets; + static SubsetVec aAllSubsets; static bool bInit = true; if( bInit ) { @@ -1769,7 +1769,7 @@ void SubsetMap::InitList() #endif } - aAllSubsets.sort(); + std::stable_sort(aAllSubsets.begin(), aAllSubsets.end()); } maSubsets = aAllSubsets; @@ -1781,7 +1781,7 @@ void SubsetMap::ApplyCharMap( const FontCharMapRef& rxFontCharMap ) return; // remove subsets that are not matched in any range - SubsetList::iterator it = maSubsets.begin(); + auto it = maSubsets.begin(); while(it != maSubsets.end()) { const Subset& rSubset = *it; diff --git a/svx/source/unodraw/unoshtxt.cxx b/svx/source/unodraw/unoshtxt.cxx index f09305dd9939..a90040b10a86 100644 --- a/svx/source/unodraw/unoshtxt.cxx +++ b/svx/source/unodraw/unoshtxt.cxx @@ -99,7 +99,7 @@ private: bool mbNotificationsDisabled; // prevent EditEngine/Outliner notifications (e.g. when setting up forwarder) bool mbNotifyEditOutlinerSet; - SvxUnoTextRangeBaseList maTextRanges; + SvxUnoTextRangeBaseVec mvTextRanges; SvxTextForwarder* GetBackgroundTextForwarder(); SvxTextForwarder* GetEditModeTextForwarder(); @@ -132,7 +132,7 @@ public: void addRange( SvxUnoTextRangeBase* pNewRange ); void removeRange( SvxUnoTextRangeBase* pOldRange ); - const SvxUnoTextRangeBaseList& getRanges() const { return maTextRanges;} + const SvxUnoTextRangeBaseVec& getRanges() const { return mvTextRanges;} void lock(); void unlock(); @@ -238,15 +238,15 @@ SvxTextEditSourceImpl::~SvxTextEditSourceImpl() void SvxTextEditSourceImpl::addRange( SvxUnoTextRangeBase* pNewRange ) { if( pNewRange ) - if( std::find( maTextRanges.begin(), maTextRanges.end(), pNewRange ) == maTextRanges.end() ) - maTextRanges.push_back( pNewRange ); + if( std::find( mvTextRanges.begin(), mvTextRanges.end(), pNewRange ) == mvTextRanges.end() ) + mvTextRanges.push_back( pNewRange ); } void SvxTextEditSourceImpl::removeRange( SvxUnoTextRangeBase* pOldRange ) { if( pOldRange ) - maTextRanges.remove( pOldRange ); + mvTextRanges.erase( std::remove(mvTextRanges.begin(), mvTextRanges.end(), pOldRange), mvTextRanges.end() ); } @@ -1050,7 +1050,7 @@ void SvxTextEditSource::removeRange( SvxUnoTextRangeBase* pOldRange ) mpImpl->removeRange( pOldRange ); } -const SvxUnoTextRangeBaseList& SvxTextEditSource::getRanges() const +const SvxUnoTextRangeBaseVec& SvxTextEditSource::getRanges() const { return mpImpl->getRanges(); } commit e463ab92c3be84c603fe855464c213efb93b2120 Author: Noel Grandin <noel.gran...@collabora.co.uk> Date: Sat Apr 7 21:26:29 2018 +0200 std::list->std::vector in sw::WriterMultiListener for small objects like pointers, much more cache-friendly Change-Id: I37a77c437fd53f5774e9752565f463f764f29c9a Reviewed-on: https://gerrit.libreoffice.org/52562 Tested-by: Jenkins <c...@libreoffice.org> Reviewed-by: Noel Grandin <noel.gran...@collabora.co.uk> diff --git a/sw/inc/calbck.hxx b/sw/inc/calbck.hxx index cdf1e9b612dc..8843f2a45838 100644 --- a/sw/inc/calbck.hxx +++ b/sw/inc/calbck.hxx @@ -26,7 +26,7 @@ #include "ring.hxx" #include "hintids.hxx" #include <type_traits> -#include <list> +#include <vector> #include <memory> @@ -265,7 +265,7 @@ namespace sw typedef std::unique_ptr<SwDepend> pointer_t; #endif SwClient& m_rToTell; - std::list<pointer_t> m_vDepends; + std::vector<pointer_t> m_vDepends; public: WriterMultiListener(SwClient& rToTell) : m_rToTell(rToTell) {} diff --git a/sw/source/core/attr/calbck.cxx b/sw/source/core/attr/calbck.cxx index 8f97761e38fe..ca75f06904df 100644 --- a/sw/source/core/attr/calbck.cxx +++ b/sw/source/core/attr/calbck.cxx @@ -314,10 +314,13 @@ bool sw::WriterMultiListener::IsListeningTo(const SwModify* const pBroadcaster) void sw::WriterMultiListener::EndListening(SwModify* pBroadcaster) { - m_vDepends.remove_if( [&pBroadcaster](const pointer_t& pListener) - { - return pListener->GetRegisteredIn() == nullptr || pListener->GetRegisteredIn() == pBroadcaster; - }); + m_vDepends.erase( + std::remove_if( m_vDepends.begin(), m_vDepends.end(), + [&pBroadcaster](const pointer_t& pListener) + { + return pListener->GetRegisteredIn() == nullptr || pListener->GetRegisteredIn() == pBroadcaster; + }), + m_vDepends.end()); } void sw::WriterMultiListener::EndListeningAll() _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits