From 9cef658364e4d8441f490e4fe89c3bfa14cd24b3 Mon Sep 17 00:00:00 2001 From: Stephan Bergmann Date: Tue, 21 Jun 2016 14:05:17 +0200 Subject: Clean up uses of Any::getValue() in stoc Change-Id: I455b708bfcc9d5aa71bb0ffc21efec205302169e --- stoc/source/servicemanager/servicemanager.cxx | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) (limited to 'stoc/source/servicemanager') diff --git a/stoc/source/servicemanager/servicemanager.cxx b/stoc/source/servicemanager/servicemanager.cxx index 19de2de8017c..283facc5f3e3 100644 --- a/stoc/source/servicemanager/servicemanager.cxx +++ b/stoc/source/servicemanager/servicemanager.cxx @@ -17,6 +17,9 @@ * the License at http://www.apache.org/licenses/LICENSE-2.0 . */ +#include + +#include #include #include #include @@ -1111,12 +1114,10 @@ sal_Bool OServiceManager::has( const Any & Element ) return m_ImplementationMap.find( xEle ) != m_ImplementationMap.end(); } - else if (Element.getValueTypeClass() == TypeClass_STRING) + else if (auto implName = o3tl::tryAccess(Element)) { - OUString const & implName = - *static_cast< OUString const * >(Element.getValue()); MutexGuard aGuard( m_mutex ); - return m_ImplementationNameMap.find( implName ) != + return m_ImplementationNameMap.find( *implName ) != m_ImplementationNameMap.end(); } return false; @@ -1160,7 +1161,7 @@ void OServiceManager::insert( const Any & Element ) for( sal_Int32 i = 0; i < aServiceNames.getLength(); i++ ) { m_ServiceMap.insert( HashMultimap_OWString_Interface::value_type( - pArray[i], *static_cast const *>(Element.getValue()) ) ); + pArray[i], *o3tl::doAccess>(Element) ) ); } } } @@ -1190,17 +1191,15 @@ void OServiceManager::remove( const Any & Element ) { xEle.set( Element, UNO_QUERY_THROW ); } - else if (Element.getValueTypeClass() == TypeClass_STRING) + else if (auto implName = o3tl::tryAccess(Element)) { - OUString const & implName = - *static_cast< OUString const * >(Element.getValue()); MutexGuard aGuard( m_mutex ); HashMap_OWString_Interface::const_iterator const iFind( - m_ImplementationNameMap.find( implName ) ); + m_ImplementationNameMap.find( *implName ) ); if (iFind == m_ImplementationNameMap.end()) { throw NoSuchElementException( - "element is not in: " + implName, + "element is not in: " + *implName, static_cast< OWeakObject * >(this) ); } xEle = iFind->second; -- cgit