You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openoffice.apache.org by ar...@apache.org on 2012/01/09 22:46:56 UTC

svn commit: r1229372 - /incubator/ooo/trunk/main/extensions/source/ole/unoconversionutilities.hxx

Author: arielch
Date: Mon Jan  9 21:46:55 2012
New Revision: 1229372

URL: http://svn.apache.org/viewvc?rev=1229372&view=rev
Log:
i117010 - default conversion of sequences is now again SAFEARRAY of VARIANTs

Original author  Joachim Lingner <jl...@openoffice.org>
                 Tue Mar 15 14:24:01 2011
changeset        275627  00bf0ef35ffa
parent           275626  0b716817fec5
child            275628  795ebf68a524

Modified:
    incubator/ooo/trunk/main/extensions/source/ole/unoconversionutilities.hxx

Modified: incubator/ooo/trunk/main/extensions/source/ole/unoconversionutilities.hxx
URL: http://svn.apache.org/viewvc/incubator/ooo/trunk/main/extensions/source/ole/unoconversionutilities.hxx?rev=1229372&r1=1229371&r2=1229372&view=diff
==============================================================================
--- incubator/ooo/trunk/main/extensions/source/ole/unoconversionutilities.hxx (original)
+++ incubator/ooo/trunk/main/extensions/source/ole/unoconversionutilities.hxx Mon Jan  9 21:46:55 2012
@@ -1320,47 +1320,32 @@ SAFEARRAY* 	UnoConversionUtilities<T>::c
         
     typelib_TypeDescription* pSeqElementDesc= NULL;
     TYPELIB_DANGER_GET( &pSeqElementDesc, pSeqElementTypeRef);
+    sal_Int32 nElementSize= pSeqElementDesc->nSize;
+    n= punoSeq->nElements;
+        
+    SAFEARRAYBOUND rgsabound[1];
+    rgsabound[0].lLbound = 0;
+    rgsabound[0].cElements = n;
+    VARIANT oleElement;
+    long safeI[1];
 
-    // try to find VARIANT type that is related to the UNO type of the sequence elements
-    // the sequence as a sequence element should be handled in a special way
-    VARTYPE eTargetElementType = VT_EMPTY;
-    if ( pSeqElementDesc->eTypeClass != TypeClass_SEQUENCE )
-        eTargetElementType = mapTypeClassToVartype( static_cast< TypeClass >( pSeqElementDesc->eTypeClass ) );
+    pArray = SafeArrayCreate(VT_VARIANT, 1, rgsabound);
 
-    if ( eTargetElementType != VT_EMPTY )
-        pArray = createUnoSequenceWrapper( rSeq, eTargetElementType );
+    Any unoElement;
+    sal_uInt8 * pSeqData= (sal_uInt8*) punoSeq->elements;
 
-    if ( !pArray )
+    for (sal_uInt32 i = 0; i < n; i++)
     {
-        sal_Int32 nElementSize= pSeqElementDesc->nSize;
-        n= punoSeq->nElements;
-        
-        SAFEARRAYBOUND rgsabound[1];
-        rgsabound[0].lLbound = 0;
-        rgsabound[0].cElements = n;
-        VARIANT oleElement;
-        long safeI[1];
+        unoElement.setValue( pSeqData + i * nElementSize, pSeqElementDesc);
+        VariantInit(&oleElement);
         
-        pArray = SafeArrayCreate(VT_VARIANT, 1, rgsabound);
+        anyToVariant(&oleElement, unoElement);
         
-        Any unoElement;
-        //		sal_uInt8 * pSeqData= (sal_uInt8*) punoSeq->pElements;
-        sal_uInt8 * pSeqData= (sal_uInt8*) punoSeq->elements;
+        safeI[0] = i;
+        SafeArrayPutElement(pArray, safeI, &oleElement);
         
-        for (sal_uInt32 i = 0; i < n; i++)
-        {
-            unoElement.setValue( pSeqData + i * nElementSize, pSeqElementDesc);
-            VariantInit(&oleElement);
-            
-            anyToVariant(&oleElement, unoElement);
-            
-            safeI[0] = i;
-            SafeArrayPutElement(pArray, safeI, &oleElement);
-            
-            VariantClear(&oleElement);
-        }
+        VariantClear(&oleElement);
     }
-
     TYPELIB_DANGER_RELEASE( pSeqElementDesc);
         
     return pArray;