Replace lists by vectors in animation parts (sd/animations)
Change-Id: Ie5306041e5cde5617e460ae4d98861e8d26e389d Reviewed-on: https://gerrit.libreoffice.org/44297 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
This commit is contained in:
parent
33157a1153
commit
393fa77d27
4 changed files with 23 additions and 31 deletions
|
@ -56,7 +56,7 @@
|
|||
#include <cppuhelper/implbase.hxx>
|
||||
|
||||
#include <osl/mutex.hxx>
|
||||
#include <list>
|
||||
#include <vector>
|
||||
#include <algorithm>
|
||||
#include <string.h>
|
||||
|
||||
|
@ -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();
|
||||
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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++);
|
||||
|
||||
|
|
|
@ -89,7 +89,7 @@ private:
|
|||
ImplSdPPTImport* mpPPTImport;
|
||||
SvStream& mrStCtrl;
|
||||
|
||||
sd::AfterEffectNodeList maAfterEffectNodes;
|
||||
std::vector< sd::AfterEffectNode > maAfterEffectNodes;
|
||||
|
||||
#ifdef DBG_ANIM_LOG
|
||||
FILE * mpFile;
|
||||
|
|
Loading…
Reference in a new issue