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;


Reply via email to