diff options
-rw-r--r-- | cppuhelper/Library_cppuhelper.mk | 4 | ||||
-rw-r--r-- | cppuhelper/source/servicemanager.cxx | 15 | ||||
-rw-r--r-- | cppuhelper/source/servicemanager.hxx | 3 |
3 files changed, 10 insertions, 12 deletions
diff --git a/cppuhelper/Library_cppuhelper.mk b/cppuhelper/Library_cppuhelper.mk index 3a1b4b776f66..5e8fe1616435 100644 --- a/cppuhelper/Library_cppuhelper.mk +++ b/cppuhelper/Library_cppuhelper.mk @@ -39,6 +39,10 @@ $(eval $(call gb_Library_use_static_libraries,cppuhelper,\ findsofficepath \ )) +$(eval $(call gb_Library_use_externals,cppuhelper,\ + boost_headers \ +)) + ifeq ($(OS),iOS) $(eval $(call gb_Library_add_cxxflags,cppuhelper,\ $(gb_OBJCXXFLAGS) \ diff --git a/cppuhelper/source/servicemanager.cxx b/cppuhelper/source/servicemanager.cxx index 415d0edb0e3c..32b4976cf1e1 100644 --- a/cppuhelper/source/servicemanager.cxx +++ b/cppuhelper/source/servicemanager.cxx @@ -68,10 +68,7 @@ void insertImplementationMap( assert(destination != nullptr); for (const auto& [rName, rImpls] : source) { - std::vector< - std::shared_ptr< - cppuhelper::ServiceManager::Data::Implementation > > & impls - = (*destination)[rName]; + auto & impls = (*destination)[rName]; impls.insert(impls.end(), rImpls.begin(), rImpls.end()); } } @@ -87,13 +84,9 @@ void removeFromImplementationMap( assert(map != nullptr); for (const auto& rElement : elements) { - cppuhelper::ServiceManager::Data::ImplementationMap::iterator j( - map->find(rElement)); + auto j(map->find(rElement)); assert(j != map->end()); - std::vector< - std::shared_ptr< - cppuhelper::ServiceManager::Data::Implementation > >::iterator - k(std::find(j->second.begin(), j->second.end(), implementation)); + auto k(std::find(j->second.begin(), j->second.end(), implementation)); assert(k != j->second.end()); j->second.erase(k); if (j->second.empty()) { @@ -1139,7 +1132,7 @@ css::uno::Reference< css::container::XEnumeration > cppuhelper::ServiceManager::createContentEnumeration( OUString const & aServiceName) { - std::vector< std::shared_ptr< Data::Implementation > > impls; + boost::container::small_vector< std::shared_ptr< Data::Implementation >, 2 > impls; { std::unique_lock g(m_aMutex); Data::ImplementationMap::const_iterator i( diff --git a/cppuhelper/source/servicemanager.hxx b/cppuhelper/source/servicemanager.hxx index af80be25a183..8ab144b115ee 100644 --- a/cppuhelper/source/servicemanager.hxx +++ b/cppuhelper/source/servicemanager.hxx @@ -32,6 +32,7 @@ #include <com/sun/star/uno/Reference.hxx> #include <compbase2.hxx> #include <rtl/ustring.hxx> +#include <boost/container/small_vector.hpp> namespace com::sun::star::lang { class XSingleComponentFactory; @@ -174,7 +175,7 @@ public: typedef std::unordered_map< OUString, - std::vector< std::shared_ptr< Implementation > > > + boost::container::small_vector< std::shared_ptr< Implementation >, 2 > > ImplementationMap; NamedImplementations namedImplementations; |