diff options
author | Stephan Bergmann <sbergman@redhat.com> | 2016-06-21 14:05:17 +0200 |
---|---|---|
committer | Stephan Bergmann <sbergman@redhat.com> | 2016-06-21 14:05:17 +0200 |
commit | 9cef658364e4d8441f490e4fe89c3bfa14cd24b3 (patch) | |
tree | d3759856838bb9fc6af85694bbe4c594f728e8f7 /stoc/source/servicemanager | |
parent | 7669bf3884ac053baca04e09d7c9994870983a4a (diff) |
Clean up uses of Any::getValue() in stoc
Change-Id: I455b708bfcc9d5aa71bb0ffc21efec205302169e
Diffstat (limited to 'stoc/source/servicemanager')
-rw-r--r-- | stoc/source/servicemanager/servicemanager.cxx | 19 |
1 files changed, 9 insertions, 10 deletions
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 <sal/config.h> + +#include <o3tl/any.hxx> #include <osl/mutex.hxx> #include <osl/diagnose.h> #include <rtl/ref.hxx> @@ -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<OUString>(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<Reference<XInterface > const *>(Element.getValue()) ) ); + pArray[i], *o3tl::doAccess<Reference<XInterface>>(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<OUString>(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; |