From 393fa77d278eae7a72a8dc78f81082bbdd63a656 Mon Sep 17 00:00:00 2001 From: Julien Nabet Date: Sat, 4 Nov 2017 14:45:32 +0100 Subject: [PATCH] Replace lists by vectors in animation parts (sd/animations) Change-Id: Ie5306041e5cde5617e460ae4d98861e8d26e389d Reviewed-on: https://gerrit.libreoffice.org/44297 Tested-by: Jenkins Reviewed-by: Julien Nabet --- animations/source/animcore/animcore.cxx | 48 +++++++++++------------- sd/inc/animations.hxx | 2 - sd/source/core/CustomAnimationEffect.cxx | 2 +- sd/source/filter/ppt/pptinanimations.hxx | 2 +- 4 files changed, 23 insertions(+), 31 deletions(-) diff --git a/animations/source/animcore/animcore.cxx b/animations/source/animcore/animcore.cxx index 05b7a4747970..f4af2aada347 100644 --- a/animations/source/animcore/animcore.cxx +++ b/animations/source/animcore/animcore.cxx @@ -56,7 +56,7 @@ #include #include -#include +#include #include #include @@ -100,10 +100,6 @@ using namespace ::com::sun::star::animations::AnimationNodeType; namespace animcore { - -typedef std::list< Reference< XAnimationNode > > ChildList_t; - - class AnimationNodeBase : public XAnimateMotion, public XAnimateColor, public XTransitionFilter, @@ -344,14 +340,14 @@ private: double mfIterateInterval; /** sorted list of child nodes for XTimeContainer*/ - ChildList_t maChildren; + std::vector< Reference< XAnimationNode > > maChildren; }; class TimeContainerEnumeration : public ::cppu::WeakImplHelper< XEnumeration > { public: - explicit TimeContainerEnumeration( const ChildList_t &rChildren ); + explicit TimeContainerEnumeration( const std::vector< Reference< XAnimationNode > > &rChildren ); // Methods virtual sal_Bool SAL_CALL hasMoreElements() override; @@ -359,16 +355,16 @@ public: private: /** sorted list of child nodes */ - ChildList_t maChildren; + std::vector< Reference< XAnimationNode > > maChildren; /** current iteration position */ - ChildList_t::iterator maIter; + std::vector< Reference< XAnimationNode > >::iterator maIter; /** our first, last and only protection from multi-threads! */ Mutex maMutex; }; -TimeContainerEnumeration::TimeContainerEnumeration( const ChildList_t &rChildren ) +TimeContainerEnumeration::TimeContainerEnumeration( const std::vector< Reference< XAnimationNode > > &rChildren ) : maChildren( rChildren ) { maIter = maChildren.begin(); @@ -1192,11 +1188,9 @@ Reference< XCloneable > SAL_CALL AnimationNode::createClone() Reference< XTimeContainer > xContainer( xNewNode, UNO_QUERY ); if( xContainer.is() ) { - ChildList_t::iterator aIter( maChildren.begin() ); - ChildList_t::iterator aEnd( maChildren.end() ); - while( aIter != aEnd ) + for (auto const& child : maChildren) { - Reference< XCloneable > xCloneable((*aIter++), UNO_QUERY ); + Reference< XCloneable > xCloneable(child, UNO_QUERY ); if( xCloneable.is() ) try { Reference< XAnimationNode > xNewChildNode( xCloneable->createClone(), UNO_QUERY ); @@ -1768,13 +1762,13 @@ Reference< XAnimationNode > SAL_CALL AnimationNode::insertBefore( const Referenc if( !newChild.is() || !refChild.is() ) throw IllegalArgumentException(); - ChildList_t::iterator before = std::find(maChildren.begin(), maChildren.end(), refChild); - if( before == maChildren.end() ) - throw NoSuchElementException(); - if( std::find(maChildren.begin(), maChildren.end(), newChild) != maChildren.end() ) throw ElementExistException(); + auto before = std::find(maChildren.begin(), maChildren.end(), refChild); + if( before == maChildren.end() ) + throw NoSuchElementException(); + maChildren.insert( before, newChild ); Reference< XInterface > xThis( static_cast< OWeakObject * >(this) ); @@ -1792,13 +1786,13 @@ Reference< XAnimationNode > SAL_CALL AnimationNode::insertAfter( const Reference if( !newChild.is() || !refChild.is() ) throw IllegalArgumentException(); - ChildList_t::iterator before = std::find(maChildren.begin(), maChildren.end(), refChild); - if( before == maChildren.end() ) - throw NoSuchElementException(); - if( std::find(maChildren.begin(), maChildren.end(), newChild) != maChildren.end() ) throw ElementExistException(); + auto before = std::find(maChildren.begin(), maChildren.end(), refChild); + if( before == maChildren.end() ) + throw NoSuchElementException(); + ++before; if( before != maChildren.end() ) maChildren.insert( before, newChild ); @@ -1820,13 +1814,13 @@ Reference< XAnimationNode > SAL_CALL AnimationNode::replaceChild( const Referenc if( !newChild.is() || !oldChild.is() ) throw IllegalArgumentException(); - ChildList_t::iterator replace = std::find(maChildren.begin(), maChildren.end(), oldChild); - if( replace == maChildren.end() ) - throw NoSuchElementException(); - if( std::find(maChildren.begin(), maChildren.end(), newChild) != maChildren.end() ) throw ElementExistException(); + auto replace = std::find(maChildren.begin(), maChildren.end(), oldChild); + if( replace == maChildren.end() ) + throw NoSuchElementException(); + Reference< XInterface > xNull( nullptr ); oldChild->setParent( xNull ); @@ -1847,7 +1841,7 @@ Reference< XAnimationNode > SAL_CALL AnimationNode::removeChild( const Reference if( !oldChild.is() ) throw IllegalArgumentException(); - ChildList_t::iterator old = std::find(maChildren.begin(), maChildren.end(), oldChild); + auto old = std::find(maChildren.begin(), maChildren.end(), oldChild); if( old == maChildren.end() ) throw NoSuchElementException(); diff --git a/sd/inc/animations.hxx b/sd/inc/animations.hxx index bffe1877fa25..bb7f61339a95 100644 --- a/sd/inc/animations.hxx +++ b/sd/inc/animations.hxx @@ -38,8 +38,6 @@ struct AfterEffectNode : mxNode( xNode ), mxMaster( xMaster ), mbOnNextEffect( bOnNextEffect ) {} }; -typedef std::list< AfterEffectNode > AfterEffectNodeList; - /** inserts the animation node in the given AfterEffectNode at the correct position in the timing hierarchy of its master */ SD_DLLPUBLIC void stl_process_after_effect_node_func(AfterEffectNode const & rNode); diff --git a/sd/source/core/CustomAnimationEffect.cxx b/sd/source/core/CustomAnimationEffect.cxx index 1d0975a4f2e0..33c7f895025d 100644 --- a/sd/source/core/CustomAnimationEffect.cxx +++ b/sd/source/core/CustomAnimationEffect.cxx @@ -1822,7 +1822,7 @@ void EffectSequenceHelper::implRebuild() EffectSequence::iterator aEnd( maEffects.end() ); if( aIter != aEnd ) { - AfterEffectNodeList aAfterEffects; + std::vector< sd::AfterEffectNode > aAfterEffects; CustomAnimationEffectPtr pEffect = (*aIter++); diff --git a/sd/source/filter/ppt/pptinanimations.hxx b/sd/source/filter/ppt/pptinanimations.hxx index 77e599a72833..5cbb40592862 100644 --- a/sd/source/filter/ppt/pptinanimations.hxx +++ b/sd/source/filter/ppt/pptinanimations.hxx @@ -89,7 +89,7 @@ private: ImplSdPPTImport* mpPPTImport; SvStream& mrStCtrl; - sd::AfterEffectNodeList maAfterEffectNodes; + std::vector< sd::AfterEffectNode > maAfterEffectNodes; #ifdef DBG_ANIM_LOG FILE * mpFile;