Author: alg
Date: Fri Jan 17 22:32:30 2014
New Revision: 1559272
URL: http://svn.apache.org/r1559272
Log:
i123870 corrected import values on xml import with chart, avoid uninitialized
values
Modified:
openoffice/trunk/main/sc/inc/document.hxx
openoffice/trunk/main/sc/inc/refdata.hxx
openoffice/trunk/main/sc/source/core/tool/reftokenhelper.cxx
openoffice/trunk/main/sc/source/filter/excel/excform8.cxx
Modified: openoffice/trunk/main/sc/inc/document.hxx
URL:
http://svn.apache.org/viewvc/openoffice/trunk/main/sc/inc/document.hxx?rev=1559272&r1=1559271&r2=1559272&view=diff
==============================================================================
--- openoffice/trunk/main/sc/inc/document.hxx (original)
+++ openoffice/trunk/main/sc/inc/document.hxx Fri Jan 17 22:32:30 2014
@@ -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; }
Modified: openoffice/trunk/main/sc/inc/refdata.hxx
URL:
http://svn.apache.org/viewvc/openoffice/trunk/main/sc/inc/refdata.hxx?rev=1559272&r1=1559271&r2=1559272&view=diff
==============================================================================
--- openoffice/trunk/main/sc/inc/refdata.hxx (original)
+++ openoffice/trunk/main/sc/inc/refdata.hxx Fri Jan 17 22:32:30 2014
@@ -76,6 +76,10 @@ struct SC_DLLPUBLIC ScSingleRefData
// 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 // Compl
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 );
Modified: openoffice/trunk/main/sc/source/core/tool/reftokenhelper.cxx
URL:
http://svn.apache.org/viewvc/openoffice/trunk/main/sc/source/core/tool/reftokenhelper.cxx?rev=1559272&r1=1559271&r2=1559272&view=diff
==============================================================================
--- openoffice/trunk/main/sc/source/core/tool/reftokenhelper.cxx (original)
+++ openoffice/trunk/main/sc/source/core/tool/reftokenhelper.cxx Fri Jan 17
22:32:30 2014
@@ -146,6 +146,12 @@ bool ScRefTokenHelper::getRangeFromToken
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
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);
Modified: openoffice/trunk/main/sc/source/filter/excel/excform8.cxx
URL:
http://svn.apache.org/viewvc/openoffice/trunk/main/sc/source/filter/excel/excform8.cxx?rev=1559272&r1=1559271&r2=1559272&view=diff
==============================================================================
--- openoffice/trunk/main/sc/source/filter/excel/excform8.cxx (original)
+++ openoffice/trunk/main/sc/source/filter/excel/excform8.cxx Fri Jan 17
22:32:30 2014
@@ -124,6 +124,10 @@ ConvErr ExcelToSc8::Convert( const ScTok
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( c
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;