[Libreoffice-commits] .: basic/source

Libreoffice Gerrit user logerrit at kemper.freedesktop.org
Mon Aug 27 02:53:56 PDT 2012


 basic/source/runtime/step0.cxx |    8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

New commits:
commit 55899d7f5f3125ea2d4b1178065ffea80b3d2b50
Author: Noel Power <noel.power at suse.com>
Date:   Mon Aug 27 10:51:42 2012 +0100

    fix for fdo#54046
    
    fix case where the value is neither uno object or unostruct
    
    Change-Id: I2862ab23a875a691edb202bb9d334b000871f718

diff --git a/basic/source/runtime/step0.cxx b/basic/source/runtime/step0.cxx
index 0ddda8f..667a805 100644
--- a/basic/source/runtime/step0.cxx
+++ b/basic/source/runtime/step0.cxx
@@ -351,7 +351,13 @@ inline bool checkUnoStructCopy( bool bVBA, SbxVariableRef& refVal, SbxVariableRe
 
     SbUnoObject* pUnoVal =  PTR_CAST(SbUnoObject,(SbxObject*)xValObj);
     SbUnoStructRefObject* pUnoStructVal = PTR_CAST(SbUnoStructRefObject,(SbxObject*)xValObj);
-    Any aAny = pUnoVal ? pUnoVal->getUnoAny() : pUnoStructVal->getUnoAny();
+    Any aAny;
+    // make doubly sure value is either an Uno object or
+    // an uno struct
+    if ( pUnoVal || pUnoStructVal )
+        aAny = pUnoVal ? pUnoVal->getUnoAny() : pUnoStructVal->getUnoAny();
+    else
+        return false;
     if (  aAny.getValueType().getTypeClass() == TypeClass_STRUCT )
     {
         refVar->SetType( SbxOBJECT );


More information about the Libreoffice-commits mailing list