From 40b0bd21e87480b659e7ed92854eee385a2a3c55 Mon Sep 17 00:00:00 2001 From: Noel Grandin Date: Thu, 12 Dec 2019 15:01:02 +0200 Subject: sc: rowcol: tdf#50916 pass ScDocument to the token classes needed to create a fake ScDocument for the external ref manager, since it has no ScDocument at all Change-Id: Ia786ac291133e3c438694e81ecfb2590729a853d Reviewed-on: https://gerrit.libreoffice.org/85050 Tested-by: Jenkins Reviewed-by: Noel Grandin --- sc/source/filter/excel/excform.cxx | 12 ++++++------ sc/source/filter/excel/excform8.cxx | 17 +++++++++-------- sc/source/filter/excel/xechart.cxx | 2 +- sc/source/filter/excel/xeformula.cxx | 6 +++--- sc/source/filter/excel/xichart.cxx | 2 +- 5 files changed, 20 insertions(+), 19 deletions(-) (limited to 'sc/source/filter/excel') diff --git a/sc/source/filter/excel/excform.cxx b/sc/source/filter/excel/excform.cxx index a8397ee17607..6dbb629fc7c7 100644 --- a/sc/source/filter/excel/excform.cxx +++ b/sc/source/filter/excel/excform.cxx @@ -197,7 +197,7 @@ std::unique_ptr ExcelToSc::GetDummy() { aPool.Store( "Dummy()" ); aPool >> aStack; - return aPool.GetTokenArray( aStack.Get()); + return aPool.GetTokenArray( &GetDocImport().getDoc(), aStack.Get()); } // if bAllowArrays is false stream seeks to first byte after @@ -223,7 +223,7 @@ ConvErr ExcelToSc::Convert( std::unique_ptr& pResult, XclImpStream { aPool.Store( "-/-" ); aPool >> aStack; - pResult = aPool.GetTokenArray( aStack.Get()); + pResult = aPool.GetTokenArray( &GetDocImport().getDoc(), aStack.Get()); return ConvErr::OK; } @@ -860,14 +860,14 @@ ConvErr ExcelToSc::Convert( std::unique_ptr& pResult, XclImpStream { aPool << ocBad; aPool >> aStack; - pResult = aPool.GetTokenArray( aStack.Get()); + pResult = aPool.GetTokenArray( &GetDocImport().getDoc(), aStack.Get()); eRet = ConvErr::Ni; } else if( aIn.GetRecPos() != nEndPos ) { aPool << ocBad; aPool >> aStack; - pResult = aPool.GetTokenArray( aStack.Get()); + pResult = aPool.GetTokenArray( &GetDocImport().getDoc(), aStack.Get()); eRet = ConvErr::Count; } else if( bArrayFormula ) @@ -877,7 +877,7 @@ ConvErr ExcelToSc::Convert( std::unique_ptr& pResult, XclImpStream } else { - pResult = aPool.GetTokenArray( aStack.Get()); + pResult = aPool.GetTokenArray( &GetDocImport().getDoc(), aStack.Get()); eRet = ConvErr::OK; } @@ -1692,7 +1692,7 @@ std::unique_ptr ExcelToSc::GetBoolErr( XclBoolError eType ) aPool >> aStack; - std::unique_ptr pResult = aPool.GetTokenArray( aStack.Get()); + std::unique_ptr pResult = aPool.GetTokenArray( &GetDocImport().getDoc(), aStack.Get()); if( nError != FormulaError::NONE ) pResult->SetCodeError( nError ); diff --git a/sc/source/filter/excel/excform8.cxx b/sc/source/filter/excel/excform8.cxx index 8c9d0f7191ec..beee318fcd0c 100644 --- a/sc/source/filter/excel/excform8.cxx +++ b/sc/source/filter/excel/excform8.cxx @@ -20,6 +20,7 @@ #include #include +#include #include #include #include @@ -151,7 +152,7 @@ ConvErr ExcelToSc8::Convert( std::unique_ptr& rpTokArray, XclImpSt { aPool.Store( "-/-" ); aPool >> aStack; - rpTokArray = aPool.GetTokenArray( aStack.Get()); + rpTokArray = aPool.GetTokenArray(&GetDocImport().getDoc(), aStack.Get()); return ConvErr::OK; } @@ -914,14 +915,14 @@ ConvErr ExcelToSc8::Convert( std::unique_ptr& rpTokArray, XclImpSt { aPool << ocBad; aPool >> aStack; - rpTokArray = aPool.GetTokenArray( aStack.Get()); + rpTokArray = aPool.GetTokenArray( &GetDocImport().getDoc(), aStack.Get()); eRet = ConvErr::Ni; } else if( aIn.GetRecPos() != nEndPos ) { aPool << ocBad; aPool >> aStack; - rpTokArray = aPool.GetTokenArray( aStack.Get()); + rpTokArray = aPool.GetTokenArray( &GetDocImport().getDoc(), aStack.Get()); eRet = ConvErr::Count; } else if( bArrayFormula ) @@ -931,7 +932,7 @@ ConvErr ExcelToSc8::Convert( std::unique_ptr& rpTokArray, XclImpSt } else { - rpTokArray = aPool.GetTokenArray( aStack.Get()); + rpTokArray = aPool.GetTokenArray( &GetDocImport().getDoc(), aStack.Get()); eRet = ConvErr::OK; } @@ -1298,7 +1299,7 @@ void ExcelToSc8::ConvertExternName( std::unique_ptr& rpArray, XclI { aPool.Store("-/-"); aPool >> aStack; - rpArray = aPool.GetTokenArray( aStack.Get()); + rpArray = aPool.GetTokenArray( &GetDocImport().getDoc(), aStack.Get()); return; } @@ -1414,17 +1415,17 @@ void ExcelToSc8::ConvertExternName( std::unique_ptr& rpArray, XclI { aPool << ocBad; aPool >> aStack; - rpArray = aPool.GetTokenArray( aStack.Get()); + rpArray = aPool.GetTokenArray( &GetDocImport().getDoc(), aStack.Get()); } else if( rStrm.GetRecPos() != nEndPos ) { aPool << ocBad; aPool >> aStack; - rpArray = aPool.GetTokenArray( aStack.Get()); + rpArray = aPool.GetTokenArray( &GetDocImport().getDoc(), aStack.Get()); } else { - rpArray = aPool.GetTokenArray( aStack.Get()); + rpArray = aPool.GetTokenArray( &GetDocImport().getDoc(), aStack.Get()); } rStrm.Seek(nEndPos); diff --git a/sc/source/filter/excel/xechart.cxx b/sc/source/filter/excel/xechart.cxx index eab70437bcef..f42e9f96b770 100644 --- a/sc/source/filter/excel/xechart.cxx +++ b/sc/source/filter/excel/xechart.cxx @@ -896,7 +896,7 @@ sal_uInt16 XclExpChSourceLink::ConvertDataSequence( Reference< XDataSequence > c if( !pArray ) return nDefCount; - ScTokenArray aArray; + ScTokenArray aArray(&GetRoot().GetDoc()); sal_uInt32 nValueCount = 0; FormulaTokenArrayPlainIterator aIter(*pArray); for( const FormulaToken* pToken = aIter.First(); pToken; pToken = aIter.Next() ) diff --git a/sc/source/filter/excel/xeformula.cxx b/sc/source/filter/excel/xeformula.cxx index 314794dcd426..2f24b1b2c723 100644 --- a/sc/source/filter/excel/xeformula.cxx +++ b/sc/source/filter/excel/xeformula.cxx @@ -2614,14 +2614,14 @@ XclTokenArrayRef XclExpFormulaCompiler::CreateFormula( XclTokenArrayRef XclExpFormulaCompiler::CreateFormula( XclFormulaType eType, const ScAddress& rScPos ) { - ScTokenArray aScTokArr; + ScTokenArray aScTokArr(&GetRoot().GetDoc()); lclPutCellToTokenArray( aScTokArr, rScPos, GetCurrScTab(), mxImpl->Is3DRefOnly( eType ) ); return mxImpl->CreateFormula( eType, aScTokArr ); } XclTokenArrayRef XclExpFormulaCompiler::CreateFormula( XclFormulaType eType, const ScRange& rScRange ) { - ScTokenArray aScTokArr; + ScTokenArray aScTokArr(&GetRoot().GetDoc()); lclPutRangeToTokenArray( aScTokArr, rScRange, GetCurrScTab(), mxImpl->Is3DRefOnly( eType ) ); return mxImpl->CreateFormula( eType, aScTokArr ); } @@ -2632,7 +2632,7 @@ XclTokenArrayRef XclExpFormulaCompiler::CreateFormula( XclFormulaType eType, con if( nCount == 0 ) return XclTokenArrayRef(); - ScTokenArray aScTokArr; + ScTokenArray aScTokArr(&GetRoot().GetDoc()); SCTAB nCurrScTab = GetCurrScTab(); bool b3DRefOnly = mxImpl->Is3DRefOnly( eType ); for( size_t nIdx = 0; nIdx < nCount; ++nIdx ) diff --git a/sc/source/filter/excel/xichart.cxx b/sc/source/filter/excel/xichart.cxx index 4c4354233f51..4f78956a9d7f 100644 --- a/sc/source/filter/excel/xichart.cxx +++ b/sc/source/filter/excel/xichart.cxx @@ -904,7 +904,7 @@ void XclImpChSourceLink::FillSourceLink( ::std::vector< ScTokenRef >& rTokens ) ScTokenRef pToken(p->Clone()); if (ScRefTokenHelper::isRef(pToken)) // This is a reference token. Store it. - ScRefTokenHelper::join(rTokens, pToken, ScAddress()); + ScRefTokenHelper::join(&GetRoot().GetDoc(), rTokens, pToken, ScAddress()); } } -- cgit