sc/source/core/tool/interpr4.cxx | 25 +++++++++++++++++++++++-- 1 file changed, 23 insertions(+), 2 deletions(-)
New commits: commit f3a0dd8fbc3ead1fe1ec1faec3377cedaacadd93 Author: Noel Power <noel.po...@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; _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits