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

Markus Mohrhard mmohrhard at kemper.freedesktop.org
Sat Jul 14 18:47:28 PDT 2012


 sc/inc/attarray.hxx                |    3 ---
 sc/inc/column.hxx                  |    1 -
 sc/source/core/data/attarray.cxx   |   15 ---------------
 sc/source/core/data/column.cxx     |    5 -----
 sc/source/core/data/table3.cxx     |    6 ++++--
 sc/source/filter/html/htmlpars.cxx |    1 +
 6 files changed, 5 insertions(+), 26 deletions(-)

New commits:
commit 0d21d9ddbe0561f45419ae4fc376c312565b413b
Author: Markus Mohrhard <markus.mohrhard at googlemail.com>
Date:   Sun Jul 15 03:42:27 2012 +0200

    prevent double delete in calc's html parser, fdo#52107
    
    Change-Id: I0a203a39697d3b12304e4b9dc99714cd7b2a008c

diff --git a/sc/source/filter/html/htmlpars.cxx b/sc/source/filter/html/htmlpars.cxx
index 7bdd8d2..d913865 100644
--- a/sc/source/filter/html/htmlpars.cxx
+++ b/sc/source/filter/html/htmlpars.cxx
@@ -554,6 +554,7 @@ void ScHTMLLayoutParser::Adjust()
                 nCurRow = pS->nCurRow;
             }
             delete pS;
+            pS = NULL;
             nTab = pE->nTab;
             if (pTables)
             {
commit 42cb26ba2b69cc4b10c28f07da4ee3f1e63c6af3
Author: Markus Mohrhard <markus.mohrhard at googlemail.com>
Date:   Sun Jul 15 03:27:36 2012 +0200

    Revert "don't delete ScPatternAttr from doc pool for swap, i#118877"
    
    This reverts commit 902082656655aeab559c0b5781907ff004179468.

diff --git a/sc/inc/attarray.hxx b/sc/inc/attarray.hxx
index 6ce325a..9b81440 100644
--- a/sc/inc/attarray.hxx
+++ b/sc/inc/attarray.hxx
@@ -131,9 +131,6 @@ public:
     void    SetPattern( SCROW nRow, const ScPatternAttr* pPattern, bool bPutToPool = false );
     void    SetPatternArea( SCROW nStartRow, SCROW nEndRow, const ScPatternAttr* pPattern,
                             bool bPutToPool = false, ScEditDataArray* pDataArray = NULL );
-
-    //swap two column patterns without adding and removing them from the pool
-    void    SwapPattern( ScAttrArray& pArray2, SCROW nRow1, SCROW nRow2, const ScPatternAttr* pPattern1, const ScPatternAttr* pPattern2 );
     void    ApplyStyleArea( SCROW nStartRow, SCROW nEndRow, ScStyleSheet* pStyle );
     void    ApplyCacheArea( SCROW nStartRow, SCROW nEndRow, SfxItemPoolCache* pCache,
                             ScEditDataArray* pDataArray = NULL );
diff --git a/sc/inc/column.hxx b/sc/inc/column.hxx
index 49ab814..6f776e1 100644
--- a/sc/inc/column.hxx
+++ b/sc/inc/column.hxx
@@ -307,7 +307,6 @@ public:
                                   ScEditDataArray* pDataArray = NULL );
     bool        SetAttrEntries(ScAttrEntry* pData, SCSIZE nSize);
     void        SetPattern( SCROW nRow, const ScPatternAttr& rPatAttr, bool bPutToPool = false );
-    void        SwapPattern( ScColumn& rCol, SCROW nRow1, SCROW nRow2, const ScPatternAttr& rPatAttr1, const ScPatternAttr& rPatAttr2 );
     void        SetPatternArea( SCROW nStartRow, SCROW nEndRow,
                                 const ScPatternAttr& rPatAttr, bool bPutToPool = false );
     void        ApplyPatternIfNumberformatIncompatible( const ScRange& rRange,
diff --git a/sc/source/core/data/attarray.cxx b/sc/source/core/data/attarray.cxx
index e166ea2..6cf487f 100644
--- a/sc/source/core/data/attarray.cxx
+++ b/sc/source/core/data/attarray.cxx
@@ -483,21 +483,6 @@ void ScAttrArray::SetPatternArea(SCROW nStartRow, SCROW nEndRow, const ScPattern
 #endif
 }
 
-void ScAttrArray::SwapPattern( ScAttrArray& rArray2, SCROW nRow1, SCROW nRow2, const ScPatternAttr* pPattern1, const ScPatternAttr* pPattern2)
-{
-    if(!VALIDROW(nRow1) || !VALIDROW(nRow2))
-        return;
-
-    SCSIZE nIndex1 = 0;
-    SCSIZE nIndex2 = 0;
-    Search(nRow1, nIndex1);
-    rArray2.Search(nRow2, nIndex2);
-    pData[nIndex1].pPattern = pPattern1;
-    rArray2.pData[nIndex2].pPattern = pPattern2;
-
-    if (pDocument->IsStreamValid(nTab))
-        pDocument->SetStreamValid(nTab, false);
-}
 
 void ScAttrArray::ApplyStyleArea( SCROW nStartRow, SCROW nEndRow, ScStyleSheet* pStyle )
 {
diff --git a/sc/source/core/data/column.cxx b/sc/source/core/data/column.cxx
index adc5eb2..db99462 100644
--- a/sc/source/core/data/column.cxx
+++ b/sc/source/core/data/column.cxx
@@ -652,11 +652,6 @@ void ScColumn::SetPattern( SCROW nRow, const ScPatternAttr& rPatAttr, bool bPutT
     pAttrArray->SetPattern( nRow, &rPatAttr, bPutToPool );
 }
 
-void ScColumn::SwapPattern( ScColumn& rCol2, SCROW nRow1, SCROW nRow2, const ScPatternAttr& rPatAttr1, const ScPatternAttr& rPatAttr2 )
-{
-    pAttrArray->SwapPattern( *rCol2.pAttrArray, nRow1, nRow2, &rPatAttr1, &rPatAttr2 );
-}
-
 
 void ScColumn::SetPatternArea( SCROW nStartRow, SCROW nEndRow,
                                 const ScPatternAttr& rPatAttr, bool bPutToPool )
diff --git a/sc/source/core/data/table3.cxx b/sc/source/core/data/table3.cxx
index 6a140cd..85354f3 100644
--- a/sc/source/core/data/table3.cxx
+++ b/sc/source/core/data/table3.cxx
@@ -571,7 +571,8 @@ void ScTable::SwapCol(SCCOL nCol1, SCCOL nCol2)
             const ScPatternAttr* pPat2 = GetPattern(nCol2, nRow);
             if (pPat1 != pPat2)
             {
-                aCol[nCol1].SwapPattern(aCol[nCol2], nRow, nRow, *pPat1, *pPat2);
+                SetPattern(nCol1, nRow, *pPat2, true);
+                SetPattern(nCol2, nRow, *pPat1, true);
             }
         }
     }
@@ -622,7 +623,8 @@ void ScTable::SwapRow(SCROW nRow1, SCROW nRow2)
             const ScPatternAttr* pPat2 = GetPattern(nCol, nRow2);
             if (pPat1 != pPat2)
             {
-                aCol[nCol].SwapPattern(aCol[nCol], nRow1, nRow2, *pPat1, *pPat2);
+                SetPattern(nCol, nRow1, *pPat2, true);
+                SetPattern(nCol, nRow2, *pPat1, true);
             }
         }
     }


More information about the Libreoffice-commits mailing list