diff options
author | Noel Grandin <noelgrandin@gmail.com> | 2016-01-19 19:45:45 +0200 |
---|---|---|
committer | Noel Grandin <noel@peralex.com> | 2016-01-25 08:52:03 +0200 |
commit | 752cd07d085ac0aadc99bd512d49072843139032 (patch) | |
tree | 21ff2f55761b34bfdd721b5e1ed43333e8874e46 /svx/source/unodraw/unoshcol.cxx | |
parent | tdf#86567 Dropdown for conditional formatting (diff) | |
download | core-752cd07d085ac0aadc99bd512d49072843139032.tar.gz core-752cd07d085ac0aadc99bd512d49072843139032.zip |
InterfaceContainer2 with vector instead of Sequence
create an InterfaceContainer2 class to replace InterfaceContainer.
It uses a std::vector instead of a Sequence for the mutable listener
list, which provides far better performance.
Switch all our internal use-sites to the new class.
Change-Id: I6b56cfa511ded2395faa22e68fab3b2f16c3cb88
Diffstat (limited to 'svx/source/unodraw/unoshcol.cxx')
-rw-r--r-- | svx/source/unodraw/unoshcol.cxx | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/svx/source/unodraw/unoshcol.cxx b/svx/source/unodraw/unoshcol.cxx index e28b50288056..5057ba801c9e 100644 --- a/svx/source/unodraw/unoshcol.cxx +++ b/svx/source/unodraw/unoshcol.cxx @@ -25,6 +25,7 @@ #include <cppuhelper/implbase3.hxx> #include <cppuhelper/interfacecontainer.hxx> +#include <comphelper/interfacecontainer2.hxx> #include <cppuhelper/supportsservice.hxx> #include <osl/mutex.hxx> #include <rtl/ref.hxx> @@ -46,7 +47,7 @@ class SvxShapeCollection : public SvxShapeCollectionMutex { private: - cppu::OInterfaceContainerHelper maShapeContainer; + comphelper::OInterfaceContainerHelper2 maShapeContainer; cppu::OBroadcastHelper mrBHelper; @@ -229,10 +230,10 @@ uno::Any SAL_CALL SvxShapeCollection::getByIndex( sal_Int32 Index ) if( Index < 0 || Index >= getCount() ) throw lang::IndexOutOfBoundsException(); - uno::Sequence< Reference< uno::XInterface> > xElements( maShapeContainer.getElements() ); + std::vector< Reference< uno::XInterface> > xElements( maShapeContainer.getElements() ); - return uno::makeAny( Reference< drawing::XShape>(static_cast< drawing::XShape* >( xElements.getArray()[Index].get())) ); + return uno::makeAny( Reference< drawing::XShape>(static_cast< drawing::XShape* >( xElements[Index].get())) ); } // XElementAccess |