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/typeconv/convert.cxx | |
parent | 7669bf3884ac053baca04e09d7c9994870983a4a (diff) |
Clean up uses of Any::getValue() in stoc
Change-Id: I455b708bfcc9d5aa71bb0ffc21efec205302169e
Diffstat (limited to 'stoc/source/typeconv/convert.cxx')
-rw-r--r-- | stoc/source/typeconv/convert.cxx | 80 |
1 files changed, 41 insertions, 39 deletions
diff --git a/stoc/source/typeconv/convert.cxx b/stoc/source/typeconv/convert.cxx index 7b21b926d543..10d0ec539279 100644 --- a/stoc/source/typeconv/convert.cxx +++ b/stoc/source/typeconv/convert.cxx @@ -17,7 +17,9 @@ * the License at http://www.apache.org/licenses/LICENSE-2.0 . */ +#include <sal/config.h> +#include <o3tl/any.hxx> #include <osl/diagnose.h> #include <cppuhelper/factory.hxx> #include <cppuhelper/implementationentry.hxx> @@ -303,39 +305,39 @@ sal_Int64 TypeConverter_Impl::toHyper( const Any& rAny, sal_Int64 min, sal_uInt6 break; // BOOL case TypeClass_BOOLEAN: - nRet = (*static_cast<sal_Bool const *>(rAny.getValue()) ? 1 : 0); + nRet = *o3tl::forceAccess<bool>(rAny) ? 1 : 0; break; // CHAR, BYTE case TypeClass_CHAR: - nRet = *static_cast<sal_Unicode const *>(rAny.getValue()); + nRet = *o3tl::forceAccess<sal_Unicode>(rAny); break; case TypeClass_BYTE: - nRet = *static_cast<sal_Int8 const *>(rAny.getValue()); + nRet = *o3tl::forceAccess<sal_Int8>(rAny); break; // SHORT case TypeClass_SHORT: - nRet = *static_cast<sal_Int16 const *>(rAny.getValue()); + nRet = *o3tl::forceAccess<sal_Int16>(rAny); break; // UNSIGNED SHORT case TypeClass_UNSIGNED_SHORT: - nRet = *static_cast<sal_uInt16 const *>(rAny.getValue()); + nRet = *o3tl::forceAccess<sal_uInt16>(rAny); break; // LONG case TypeClass_LONG: - nRet = *static_cast<sal_Int32 const *>(rAny.getValue()); + nRet = *o3tl::forceAccess<sal_Int32>(rAny); break; // UNSIGNED LONG case TypeClass_UNSIGNED_LONG: - nRet = *static_cast<sal_uInt32 const *>(rAny.getValue()); + nRet = *o3tl::forceAccess<sal_uInt32>(rAny); break; // HYPER case TypeClass_HYPER: - nRet = *static_cast<sal_Int64 const *>(rAny.getValue()); + nRet = *o3tl::forceAccess<sal_Int64>(rAny); break; // UNSIGNED HYPER case TypeClass_UNSIGNED_HYPER: { - nRet = *static_cast<sal_Int64 const *>(rAny.getValue()); + nRet = static_cast<sal_Int64>(*o3tl::forceAccess<sal_uInt64>(rAny)); if ((min < 0 || (sal_uInt64)nRet >= (sal_uInt64)min) && // lower bound (sal_uInt64)nRet <= max) // upper bound { @@ -349,7 +351,7 @@ sal_Int64 TypeConverter_Impl::toHyper( const Any& rAny, sal_Int64 min, sal_uInt6 // FLOAT, DOUBLE case TypeClass_FLOAT: { - double fVal = round( *static_cast<float const *>(rAny.getValue()) ); + double fVal = round( *o3tl::forceAccess<float>(rAny) ); nRet = (fVal > SAL_INT64_MAX ? (sal_Int64)(sal_uInt64)fVal : (sal_Int64)fVal); if (fVal >= min && fVal <= unsigned_int64_to_double( max )) { @@ -361,7 +363,7 @@ sal_Int64 TypeConverter_Impl::toHyper( const Any& rAny, sal_Int64 min, sal_uInt6 } case TypeClass_DOUBLE: { - double fVal = round( *static_cast<double const *>(rAny.getValue()) ); + double fVal = round( *o3tl::forceAccess<double>(rAny) ); nRet = (fVal > SAL_INT64_MAX ? (sal_Int64)(sal_uInt64)fVal : (sal_Int64)fVal); if (fVal >= min && fVal <= unsigned_int64_to_double( max )) { @@ -376,7 +378,7 @@ sal_Int64 TypeConverter_Impl::toHyper( const Any& rAny, sal_Int64 min, sal_uInt6 case TypeClass_STRING: { sal_Int64 nVal = SAL_CONST_INT64(0); - if (! getHyperValue( nVal, *static_cast<OUString const *>(rAny.getValue()) )) + if (! getHyperValue( nVal, *o3tl::forceAccess<OUString>(rAny) )) { throw CannotConvertException( "invalid STRING value!", @@ -418,51 +420,51 @@ double TypeConverter_Impl::toDouble( const Any& rAny, double min, double max ) break; // BOOL case TypeClass_BOOLEAN: - fRet = (*static_cast<sal_Bool const *>(rAny.getValue()) ? 1.0 : 0.0); + fRet = *o3tl::forceAccess<bool>(rAny) ? 1.0 : 0.0; break; // CHAR, BYTE case TypeClass_CHAR: - fRet = *static_cast<sal_Unicode const *>(rAny.getValue()); + fRet = *o3tl::forceAccess<sal_Unicode>(rAny); break; case TypeClass_BYTE: - fRet = *static_cast<sal_Int8 const *>(rAny.getValue()); + fRet = *o3tl::forceAccess<sal_Int8>(rAny); break; // SHORT case TypeClass_SHORT: - fRet = *static_cast<sal_Int16 const *>(rAny.getValue()); + fRet = *o3tl::forceAccess<sal_Int16>(rAny); break; // UNSIGNED SHORT case TypeClass_UNSIGNED_SHORT: - fRet = *static_cast<sal_uInt16 const *>(rAny.getValue()); + fRet = *o3tl::forceAccess<sal_uInt16>(rAny); break; // LONG case TypeClass_LONG: - fRet = *static_cast<sal_Int32 const *>(rAny.getValue()); + fRet = *o3tl::forceAccess<sal_Int32>(rAny); break; // UNSIGNED LONG case TypeClass_UNSIGNED_LONG: - fRet = *static_cast<sal_uInt32 const *>(rAny.getValue()); + fRet = *o3tl::forceAccess<sal_uInt32>(rAny); break; // HYPER case TypeClass_HYPER: - fRet = (double)*static_cast<sal_Int64 const *>(rAny.getValue()); + fRet = (double)*o3tl::forceAccess<sal_Int64>(rAny); break; // UNSIGNED HYPER case TypeClass_UNSIGNED_HYPER: - fRet = unsigned_int64_to_double( *static_cast<sal_uInt64 const *>(rAny.getValue()) ); + fRet = unsigned_int64_to_double( *o3tl::forceAccess<sal_uInt64>(rAny) ); break; // FLOAT, DOUBLE case TypeClass_FLOAT: - fRet = *static_cast<float const *>(rAny.getValue()); + fRet = *o3tl::forceAccess<float>(rAny); break; case TypeClass_DOUBLE: - fRet = *static_cast<double const *>(rAny.getValue()); + fRet = *o3tl::forceAccess<double>(rAny); break; // STRING case TypeClass_STRING: { - if (! getNumericValue( fRet, *static_cast<OUString const *>(rAny.getValue()) )) + if (! getNumericValue( fRet, *o3tl::forceAccess<OUString>(rAny) )) { throw CannotConvertException( "invalid STRING value!", @@ -538,15 +540,15 @@ Any SAL_CALL TypeConverter_Impl::convertTo( const Any& rVal, const Type& aDestTy break; } - if (rVal.getValueTypeClass() != TypeClass_INTERFACE || - !*static_cast<XInterface * const *>(rVal.getValue())) + auto ifc = o3tl::tryAccess<css::uno::Reference<css::uno::XInterface>>( + rVal); + if (!ifc || !ifc->is()) { throw CannotConvertException( "value is no interface!", Reference< XInterface >(), aDestinationClass, FailReason::NO_SUCH_INTERFACE, 0 ); } - if (! (aRet = (*static_cast<XInterface * const *>(rVal.getValue()))->queryInterface( - aDestType )).hasValue()) + if (! (aRet = (*ifc)->queryInterface(aDestType )).hasValue()) { throw CannotConvertException( "value has no such interface!", @@ -626,7 +628,7 @@ Any SAL_CALL TypeConverter_Impl::convertTo( const Any& rVal, const Type& aDestTy { for ( nPos = reinterpret_cast<typelib_EnumTypeDescription *>(aEnumTD.get())->nEnumValues; nPos--; ) { - if (static_cast<const OUString *>(rVal.getValue())->equalsIgnoreAsciiCase( + if (o3tl::forceAccess<OUString>(rVal)->equalsIgnoreAsciiCase( reinterpret_cast<typelib_EnumTypeDescription *>(aEnumTD.get())->ppEnumNames[nPos] )) break; } @@ -737,7 +739,7 @@ Any TypeConverter_Impl::convertToSimpleType( const Any& rVal, TypeClass aDestina case TypeClass_STRING: { - const OUString & aStr = *static_cast<const OUString *>(rVal.getValue()); + const OUString & aStr = *o3tl::forceAccess<OUString>(rVal); if ( aStr == "0" || aStr.equalsIgnoreAsciiCase( "false" )) { aRet <<= false; @@ -761,7 +763,7 @@ Any TypeConverter_Impl::convertToSimpleType( const Any& rVal, TypeClass aDestina { if (aSourceClass==TypeClass_STRING) { - auto const s = static_cast<const OUString *>(rVal.getValue()); + auto const s = o3tl::forceAccess<OUString>(rVal); if (s->getLength() == 1) // single char aRet <<= (*s)[0]; } @@ -838,31 +840,31 @@ Any TypeConverter_Impl::convertToSimpleType( const Any& rVal, TypeClass aDestina } case TypeClass_BOOLEAN: - aRet <<= *static_cast<sal_Bool const *>(rVal.getValue()) ? + aRet <<= *o3tl::forceAccess<bool>(rVal) ? OUString("true") : OUString("false"); break; case TypeClass_CHAR: - aRet <<= OUString( static_cast<sal_Unicode const *>(rVal.getValue()), 1 ); + aRet <<= OUString(*o3tl::forceAccess<sal_Unicode>(rVal)); break; case TypeClass_BYTE: - aRet <<= OUString::number( *static_cast<sal_Int8 const *>(rVal.getValue()) ); + aRet <<= OUString::number( *o3tl::forceAccess<sal_Int8>(rVal) ); break; case TypeClass_SHORT: - aRet <<= OUString::number( *static_cast<sal_Int16 const *>(rVal.getValue()) ); + aRet <<= OUString::number( *o3tl::forceAccess<sal_Int16>(rVal) ); break; case TypeClass_UNSIGNED_SHORT: - aRet <<= OUString::number( *static_cast<sal_uInt16 const *>(rVal.getValue()) ); + aRet <<= OUString::number( *o3tl::forceAccess<sal_uInt16>(rVal) ); break; case TypeClass_LONG: - aRet <<= OUString::number( *static_cast<sal_Int32 const *>(rVal.getValue()) ); + aRet <<= OUString::number( *o3tl::forceAccess<sal_Int32>(rVal) ); break; case TypeClass_UNSIGNED_LONG: - aRet <<= OUString::number( *static_cast<sal_uInt32 const *>(rVal.getValue()) ); + aRet <<= OUString::number( *o3tl::forceAccess<sal_uInt32>(rVal) ); break; case TypeClass_HYPER: - aRet <<= OUString::number( *static_cast<sal_Int64 const *>(rVal.getValue()) ); + aRet <<= OUString::number( *o3tl::forceAccess<sal_Int64>(rVal) ); break; // case TypeClass_UNSIGNED_HYPER: // aRet <<= OUString::valueOf( (sal_Int64)*(sal_uInt64 const *)rVal.getValue() ); |