Kaydet (Commit) 985ad082 authored tarafından Noel Power's avatar Noel Power

Revert "fix handling of SAFEARRAY(s) returned as variant in olebridge (fdo#38441)"

This reverts commit 3fcb9431.
üst 24905945
...@@ -134,7 +134,7 @@ public: ...@@ -134,7 +134,7 @@ public:
/** @exception com.sun.star.lang.IllegalArgumentException /** @exception com.sun.star.lang.IllegalArgumentException
If rSeq does not contain a sequence then the exception is thrown. If rSeq does not contain a sequence then the exception is thrown.
*/ */
VARTYPE createUnoSequenceWrapper(const Any& rSeq, SAFEARRAY*& pOutArray ); SAFEARRAY* createUnoSequenceWrapper(const Any& rSeq);
/** @exception com.sun.star.lang.IllegalArgumentException /** @exception com.sun.star.lang.IllegalArgumentException
If rSeq does not contain a sequence or elemtype has no proper value If rSeq does not contain a sequence or elemtype has no proper value
then the exception is thrown. then the exception is thrown.
...@@ -779,12 +779,11 @@ void UnoConversionUtilities<T>::anyToVariant(VARIANT* pVariant, const Any& rAny) ...@@ -779,12 +779,11 @@ void UnoConversionUtilities<T>::anyToVariant(VARIANT* pVariant, const Any& rAny)
} }
case TypeClass_SEQUENCE: // sequence ??? SafeArray descriptor case TypeClass_SEQUENCE: // sequence ??? SafeArray descriptor
{ {
SAFEARRAY* pOutArray = NULL; SAFEARRAY* pArray = createUnoSequenceWrapper(rAny);
VARTYPE eArrayType = createUnoSequenceWrapper(rAny, pOutArray ); if (pArray)
if (pOutArray)
{ {
V_VT(pVariant) = VT_ARRAY | eArrayType; V_VT(pVariant) = VT_ARRAY | VT_VARIANT;
V_ARRAY(pVariant) = pOutArray; V_ARRAY(pVariant) = pArray;
} }
else else
{ {
...@@ -1296,8 +1295,9 @@ void UnoConversionUtilities<T>::getElementCountAndTypeOfSequence( const Any& rS ...@@ -1296,8 +1295,9 @@ void UnoConversionUtilities<T>::getElementCountAndTypeOfSequence( const Any& rS
template<class T> template<class T>
VARTYPE UnoConversionUtilities<T>::createUnoSequenceWrapper(const Any& rSeq, SAFEARRAY*& pArray) SAFEARRAY* UnoConversionUtilities<T>::createUnoSequenceWrapper(const Any& rSeq)
{ {
SAFEARRAY* pArray = NULL;
sal_uInt32 n = 0; sal_uInt32 n = 0;
if( rSeq.getValueTypeClass() != TypeClass_SEQUENCE ) if( rSeq.getValueTypeClass() != TypeClass_SEQUENCE )
...@@ -1361,7 +1361,7 @@ VARTYPE UnoConversionUtilities<T>::createUnoSequenceWrapper(const Any& rSeq, SA ...@@ -1361,7 +1361,7 @@ VARTYPE UnoConversionUtilities<T>::createUnoSequenceWrapper(const Any& rSeq, SA
TYPELIB_DANGER_RELEASE( pSeqElementDesc); TYPELIB_DANGER_RELEASE( pSeqElementDesc);
return eTargetElementType; return pArray;
} }
/* The argument rObj can contain /* The argument rObj can contain
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment