sc/inc/document.hxx | 2 +- sc/inc/refdata.hxx | 12 ++++++++++++ sc/source/core/tool/reftokenhelper.cxx | 12 ++++++++++++ sc/source/filter/excel/excform8.cxx | 8 ++++++++ 4 files changed, 33 insertions(+), 1 deletion(-)
New commits: commit 5cc9cb9c52617bab6eb6d84331dde8f3d580ee31 Author: Armin Le Grand <[email protected]> Date: Fri Jan 17 22:32:30 2014 +0000 i123870 corrected import values on xml import with chart, avoid uninitialized values diff --git a/sc/inc/document.hxx b/sc/inc/document.hxx index 88980a2..3338e25 100644 --- a/sc/inc/document.hxx +++ b/sc/inc/document.hxx @@ -465,7 +465,7 @@ public: public: SC_DLLPUBLIC ScDocument( ScDocumentMode eMode = SCDOCMODE_DOCUMENT, SfxObjectShell* pDocShell = NULL ); - SC_DLLPUBLIC ~ScDocument(); + SC_DLLPUBLIC virtual ~ScDocument(); inline ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory > GetServiceManager() const { return xServiceManager; } diff --git a/sc/inc/refdata.hxx b/sc/inc/refdata.hxx index d729d22..9550b82 100644 --- a/sc/inc/refdata.hxx +++ b/sc/inc/refdata.hxx @@ -76,6 +76,10 @@ struct SC_DLLPUBLIC ScSingleRefData // Single reference (one address) int // No default ctor, because used in ScRawToken union, set InitFlags! inline void InitFlags() { bFlags = 0; } // all FALSE + + // #123870# Make it possible to init members to some defined values + inline void InitMembers() { nCol = nRow = nTab = nRelCol = nRelRow = nRelTab = 0; } + // InitAddress: InitFlags and set address inline void InitAddress( const ScAddress& rAdr ); inline void InitAddress( SCCOL nCol, SCROW nRow, SCTAB nTab ); @@ -157,6 +161,14 @@ struct ScComplexRefData // Complex reference (a range) into the sheet inline void InitFlags() { Ref1.InitFlags(); Ref2.InitFlags(); } + + // #123870# Make it possible to init members to some defined values + inline void InitMembers() + { + Ref1.InitMembers(); + Ref2.InitMembers(); + } + inline void InitRange( const ScRange& rRange ) { Ref1.InitAddress( rRange.aStart ); diff --git a/sc/source/core/tool/reftokenhelper.cxx b/sc/source/core/tool/reftokenhelper.cxx index f15f5a0..7f6fde5 100644 --- a/sc/source/core/tool/reftokenhelper.cxx +++ b/sc/source/core/tool/reftokenhelper.cxx @@ -146,6 +146,12 @@ bool ScRefTokenHelper::getRangeFromToken(ScRange& rRange, const ScSharedTokenRef return false; const ScSingleRefData& rRefData = pToken->GetSingleRef(); + + if(!rRefData.Valid()) + { + OSL_ENSURE(false, "RefData out of range, correct before usage (!)"); + } + rRange.aStart.SetCol(rRefData.nCol); rRange.aStart.SetRow(rRefData.nRow); rRange.aStart.SetTab(rRefData.nTab); @@ -160,6 +166,12 @@ bool ScRefTokenHelper::getRangeFromToken(ScRange& rRange, const ScSharedTokenRef return false; const ScComplexRefData& rRefData = pToken->GetDoubleRef(); + + if(!rRefData.Valid()) + { + OSL_ENSURE(false, "RefData out of range, correct before usage (!)"); + } + rRange.aStart.SetCol(rRefData.Ref1.nCol); rRange.aStart.SetRow(rRefData.Ref1.nRow); rRange.aStart.SetTab(rRefData.Ref1.nTab); diff --git a/sc/source/filter/excel/excform8.cxx b/sc/source/filter/excel/excform8.cxx index 84955b4..a940d01 100644 --- a/sc/source/filter/excel/excform8.cxx +++ b/sc/source/filter/excel/excform8.cxx @@ -124,6 +124,10 @@ ConvErr ExcelToSc8::Convert( const ScTokenArray*& rpTokArray, XclImpStream& aIn, sal_Size nEndPos = aIn.GetRecPos() + nFormulaLen; + // #123870# Init members, they are on random values and not all will beinitialized in all cases below + aSRD.InitMembers(); + aCRD.InitMembers(); + while( (aIn.GetRecPos() < nEndPos) && !bError ) { aIn >> nOp; @@ -1244,6 +1248,10 @@ ConvErr ExcelToSc8::ConvertExternName( const ScTokenArray*& rpArray, XclImpStrea sal_Size nEndPos = rStrm.GetRecPos() + nFormulaLen; + // #123870# Init members, they are on random values and not all will beinitialized in all cases below + aSRD.InitMembers(); + aCRD.InitMembers(); + while( (rStrm.GetRecPos() < nEndPos) && !bError ) { rStrm >> nOp; _______________________________________________ Libreoffice-commits mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
