[Libreoffice-commits] core.git: Branch 'libreoffice-4-1' - sc/source

Noel Power noel.power at suse.com
Wed Jul 10 13:43:08 PDT 2013


 sc/source/core/tool/interpr4.cxx |   20 ++++++++++++++++++--
 1 file changed, 18 insertions(+), 2 deletions(-)

New commits:
commit 6466fdc869116384025c8a84e1591de7c1dbd9ee
Author: Noel Power <noel.power at suse.com>
Date:   Tue Jul 9 16:42:01 2013 +0100

    fix for fdo#51990 process external refs for macros
    
    (cherry picked from commit f3a0dd8fbc3ead1fe1ec1faec3377cedaacadd93)
    
    and also cherry pick from commit adab0134662562298ff13e7fe564623af4bc33da )
    use GetMatrix instead of manually disambiguating External and normal refs
    and cherry-pick further tweak from commit 35f9cd513d6dd796a5bc54c51df3961a674addcb
    
    Change-Id: I4fe1d7240f277b532e11d2fbb5aa18f54f2c4695
    4fe1d7240f277b532e11d2fbb5aa18f54f2c4695
    Reviewed-on: https://gerrit.libreoffice.org/4800
    Reviewed-by: Eike Rathke <erack at redhat.com>
    Tested-by: Eike Rathke <erack at redhat.com>

diff --git a/sc/source/core/tool/interpr4.cxx b/sc/source/core/tool/interpr4.cxx
index 1f789b9..5662baf 100644
--- a/sc/source/core/tool/interpr4.cxx
+++ b/sc/source/core/tool/interpr4.cxx
@@ -3215,6 +3215,21 @@ void ScInterpreter::ScMacro()
             case svString:
                 pPar->PutString( GetString() );
             break;
+            case svExternalSingleRef:
+            {
+                ScExternalRefCache::TokenRef pToken;
+                PopExternalSingleRef(pToken);
+                if ( pToken->GetType() == svString )
+                    pPar->PutString( pToken->GetString() );
+                else if ( pToken->GetType() == svDouble )
+                    pPar->PutDouble( pToken->GetDouble() );
+                else
+                {
+                    SetError( errIllegalArgument );
+                    bOk = false;
+                }
+            }
+            break;
             case svSingleRef:
             {
                 ScAddress aAdr;
@@ -3275,11 +3290,12 @@ void ScInterpreter::ScMacro()
                 }
             }
             break;
+            case svExternalDoubleRef:
             case svMatrix:
             {
-                ScMatrixRef pMat = PopMatrix();
+                ScMatrixRef pMat = GetMatrix();
                 SCSIZE nC, nR;
-                if (pMat)
+                if (pMat && !nGlobalError)
                 {
                     pMat->GetDimensions(nC, nR);
                     SbxDimArrayRef refArray = new SbxDimArray;


More information about the Libreoffice-commits mailing list