summaryrefslogtreecommitdiff
path: root/stoc/source/servicemanager
diff options
context:
space:
mode:
authorStephan Bergmann <sbergman@redhat.com>2016-06-21 14:05:17 +0200
committerStephan Bergmann <sbergman@redhat.com>2016-06-21 14:05:17 +0200
commit9cef658364e4d8441f490e4fe89c3bfa14cd24b3 (patch)
treed3759856838bb9fc6af85694bbe4c594f728e8f7 /stoc/source/servicemanager
parent7669bf3884ac053baca04e09d7c9994870983a4a (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.cxx19
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;