[Libreoffice-commits] core.git: sc/source

Noel Power noel.power at suse.com
Tue Jul 9 08:43:35 PDT 2013


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

New commits:
commit f3a0dd8fbc3ead1fe1ec1faec3377cedaacadd93
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
    
    Change-Id: I4fe1d7240f277b532e11d2fbb5aa18f54f2c4695

diff --git a/sc/source/core/tool/interpr4.cxx b/sc/source/core/tool/interpr4.cxx
index 926866d..62e28c3 100644
--- a/sc/source/core/tool/interpr4.cxx
+++ b/sc/source/core/tool/interpr4.cxx
@@ -3209,6 +3209,22 @@ void ScInterpreter::ScMacro()
             case svString:
                 pPar->PutString( GetString() );
             break;
+            case svExternalSingleRef:
+            {
+                ScExternalRefCache::TokenRef pToken;
+                PopExternalSingleRef(pToken);
+                if ( nGlobalError )
+                {
+                    SetError( errIllegalArgument);
+                    bOk = false;
+                }
+                else
+                {
+                    pPar->PutDouble( pToken->GetDouble() );
+                    bOk = true;
+                }
+            }
+            break;
             case svSingleRef:
             {
                 ScAddress aAdr;
@@ -3269,11 +3285,16 @@ void ScInterpreter::ScMacro()
                 }
             }
             break;
+            case svExternalDoubleRef:
             case svMatrix:
             {
-                ScMatrixRef pMat = PopMatrix();
+                ScMatrixRef pMat;
+                if (nStackType == svMatrix)
+                    pMat = PopMatrix();
+                else
+                    PopExternalDoubleRef(pMat);
                 SCSIZE nC, nR;
-                if (pMat)
+                if (pMat && !nGlobalError)
                 {
                     pMat->GetDimensions(nC, nR);
                     SbxDimArrayRef refArray = new SbxDimArray;


More information about the Libreoffice-commits mailing list