[Libreoffice-commits] .: 2 commits - sc/source

Markus Mohrhard mmohrhard at kemper.freedesktop.org
Fri May 18 10:37:10 PDT 2012


 sc/source/ui/view/viewdata.cxx |   49 ++++++++++++++++++-----------------------
 1 file changed, 22 insertions(+), 27 deletions(-)

New commits:
commit 13bb6dcddcd3e19cd97fdb28e842c778e6e093b3
Author: Markus Mohrhard <markus.mohrhard at googlemail.com>
Date:   Fri May 18 19:34:11 2012 +0200

    ensure that number of tabs is correctly set in ScViewData, fdo#45987
    
    Change-Id: Ia77ea939f6ce9301afeabe1d1679998ce34b397e

diff --git a/sc/source/ui/view/viewdata.cxx b/sc/source/ui/view/viewdata.cxx
index b7de81a..71877e8 100644
--- a/sc/source/ui/view/viewdata.cxx
+++ b/sc/source/ui/view/viewdata.cxx
@@ -2744,6 +2744,9 @@ void ScViewData::ReadUserDataSequence(const uno::Sequence <beans::PropertyValue>
     sal_Int32 nTemp32(0);
     sal_Int16 nTemp16(0);
     sal_Bool bPageMode(false);
+
+    EnsureTabDataSize(GetDocument()->GetTableCount()-1);
+
     for (sal_Int32 i = 0; i < nCount; i++)
     {
         // SC_VIEWID has to parse and use by mba
commit 90d0efb524b2cdd8d65808d18713bfd6b1d117ea
Author: Markus Mohrhard <markus.mohrhard at googlemail.com>
Date:   Fri May 18 18:11:14 2012 +0200

    Revert 4 commits related to fdo#45987
    
    Revert "and another wae ( that I missed )"
    
    This reverts commit a1faa06b415f54c0e8ff8a8f1e580e8a57b9296a.
    
    Revert "fix wae"
    
    This reverts commit 2f5885765445d8a8f50037da3420dbcd19d5634f.
    
    Revert "attempt to prevent illegal maTabData access(s)"
    
    This reverts commit 8352eb5a1af1eb44550a9d60d31e6c2fb2dc43b9.
    
    Conflicts:
    
    	sc/source/ui/view/viewdata.cxx
    
    Revert "fix bad stl access fdo#45987"
    
    This reverts commit 8b1d29bc9b00bc2730738a990023a65ab6e0219b.
    
    Conflicts:
    
    	sc/source/ui/view/viewdata.cxx
    
    Change-Id: Idba6ec8ab448332ec349f23b10a2cce8b313ff19
    33c437c8b9f005c43f03518863e151a6f0fc9589

diff --git a/sc/source/ui/view/viewdata.cxx b/sc/source/ui/view/viewdata.cxx
index 028ab83..b7de81a 100644
--- a/sc/source/ui/view/viewdata.cxx
+++ b/sc/source/ui/view/viewdata.cxx
@@ -486,14 +486,11 @@ void ScViewData::InsertTabs( SCTAB nTab, SCTAB nNewSheets )
 
 void ScViewData::DeleteTab( SCTAB nTab )
 {
-    if ( nTab < static_cast<SCTAB>(maTabData.size()) )
-    {
-        delete maTabData.at(nTab);
-        if ( nTab == static_cast<SCTAB>(maTabData.size()) - 1 )
-            maTabData.erase(maTabData.begin() + nTab);
-        UpdateCurrentTab();
-        mpMarkData->DeleteTab( nTab );
-    }
+    delete maTabData.at(nTab);
+
+    maTabData.erase(maTabData.begin() + nTab);
+    UpdateCurrentTab();
+    mpMarkData->DeleteTab( nTab );
 }
 
 void ScViewData::DeleteTabs( SCTAB nTab, SCTAB nSheets )
@@ -503,8 +500,8 @@ void ScViewData::DeleteTabs( SCTAB nTab, SCTAB nSheets )
         mpMarkData->DeleteTab( nTab + i );
         delete maTabData.at(nTab + i);
     }
-    if ( ( nTab + nSheets ) == static_cast<SCTAB>( maTabData.size() - 1 ) )
-        maTabData.erase(maTabData.begin() + nTab, maTabData.begin()+ nTab+nSheets);
+
+    maTabData.erase(maTabData.begin() + nTab, maTabData.begin()+ nTab+nSheets);
     UpdateCurrentTab();
 }
 
@@ -541,8 +538,7 @@ void ScViewData::MoveTab( SCTAB nSrcTab, SCTAB nDestTab )
     if (nSrcTab < static_cast<SCTAB>(maTabData.size()))
     {
         pTab = maTabData[nSrcTab];
-        if ( nSrcTab == static_cast<SCTAB>( maTabData.size() - 1 ) )
-            maTabData.erase( maTabData.begin() + nSrcTab );
+        maTabData.erase( maTabData.begin() + nSrcTab );
     }
 
     if (nDestTab < static_cast<SCTAB>(maTabData.size()))
@@ -663,18 +659,15 @@ void ScViewData::SetZoom( const Fraction& rNewX, const Fraction& rNewY, std::vec
             SCTAB i = *it;
             if ( i < static_cast<SCTAB>(maTabData.size()) && maTabData[i] )
             {
-                if ( maTabData[i] )
+                if ( bPagebreak )
                 {
-                    if ( bPagebreak )
-                    {
-                        maTabData[i]->aPageZoomX = aValidX;
-                        maTabData[i]->aPageZoomY = aValidY;
-                    }
-                    else
-                    {
-                        maTabData[i]->aZoomX = aValidX;
-                        maTabData[i]->aZoomY = aValidY;
-                    }
+                    maTabData[i]->aPageZoomX = aValidX;
+                    maTabData[i]->aPageZoomY = aValidY;
+                }
+                else
+                {
+                    maTabData[i]->aZoomX = aValidX;
+                    maTabData[i]->aZoomY = aValidY;
                 }
             }
         }
@@ -696,8 +689,7 @@ void ScViewData::SetZoom( const Fraction& rNewX, const Fraction& rNewY, sal_Bool
 void ScViewData::SetShowGrid( bool bShow )
 {
     CreateSelectedTabData();
-    if ( maTabData[nTabNo] )
-        maTabData[nTabNo]->bShowGrid = bShow;
+    maTabData[nTabNo]->bShowGrid = bShow;
 }
 
 void ScViewData::RefreshZoom()
@@ -2954,7 +2946,7 @@ sal_Bool ScViewData::UpdateFixX( SCTAB nTab )               // sal_True = Wert g
     if (!ValidTab(nTab))        // Default
         nTab=nTabNo;        // akuelle Tabelle
 
-    if (!maTabData[nTab] || !pView || maTabData[nTab]->eHSplitMode != SC_SPLIT_FIX)
+    if (!pView || maTabData[nTab]->eHSplitMode != SC_SPLIT_FIX)
         return false;
 
     ScDocument* pLocalDoc = GetDocument();
@@ -2989,7 +2981,7 @@ sal_Bool ScViewData::UpdateFixY( SCTAB nTab )               // sal_True = Wert g
     if (!ValidTab(nTab))        // Default
         nTab=nTabNo;        // akuelle Tabelle
 
-    if (!maTabData[nTab] || !pView || maTabData[nTab]->eVSplitMode != SC_SPLIT_FIX)
+    if (!pView || maTabData[nTab]->eVSplitMode != SC_SPLIT_FIX)
         return false;
 
     ScDocument* pLocalDoc = GetDocument();


More information about the Libreoffice-commits mailing list