Hi

I converted the SV PTRARR to std::deque in sw component.
Could you please check and push this path?
This and later contributions is licensed under MPL 1.1 / GPL v3+ / LGPL v3+.

Best Regards
Bartosz





From a0291c115fa588b7e0d2faeb0df38c7a8f694004 Mon Sep 17 00:00:00 2001
From: Bartosz Kosiorek <gan...@poczta.onet.pl>
Date: Sat, 24 Mar 2012 23:01:06 +0100
Subject: [PATCH] Convert SV_PTRARRAY to ::std::deque

---
 sw/inc/crsrsh.hxx                |    1 -
 sw/inc/tblsel.hxx                |    3 ++-
 sw/source/core/crsr/trvltbl.cxx  |    2 +-
 sw/source/core/frmedt/fetab.cxx  |   14 +++++++-------
 sw/source/core/frmedt/tblsel.cxx |   33 +++++++++++++++------------------
 5 files changed, 25 insertions(+), 28 deletions(-)

diff --git a/sw/inc/crsrsh.hxx b/sw/inc/crsrsh.hxx
index fba2e68..0c07972 100644
--- a/sw/inc/crsrsh.hxx
+++ b/sw/inc/crsrsh.hxx
@@ -69,7 +69,6 @@ class SwTxtINetFmt;
 class SwFmtINetFmt;
 class SwTxtAttr;
 class SwTableBox;
-class SwCellFrms;
 class SwTOXMark;
 class SwRedline;
 class IBlockCursor;
diff --git a/sw/inc/tblsel.hxx b/sw/inc/tblsel.hxx
index 5ecc65b..5725956 100644
--- a/sw/inc/tblsel.hxx
+++ b/sw/inc/tblsel.hxx
@@ -34,6 +34,7 @@
 #include "swdllapi.h"
 
 #include <map>
+#include <deque>
 
 class SwCrsrShell;
 class SwCursor;
@@ -49,7 +50,7 @@ class SwTable;
 class SwUndoTblMerge;
 class SwCellFrm;
 
-SV_DECL_PTRARR( SwCellFrms, SwCellFrm*, 16 )
+typedef ::std::deque< SwCellFrm* > SwCellFrms;
 
 
 class SwSelBoxes : private std::map<sal_uLong, SwTableBox*>
diff --git a/sw/source/core/crsr/trvltbl.cxx b/sw/source/core/crsr/trvltbl.cxx
index cae5aa8..44a2b95 100644
--- a/sw/source/core/crsr/trvltbl.cxx
+++ b/sw/source/core/crsr/trvltbl.cxx
@@ -217,7 +217,7 @@ sal_Bool SwCrsrShell::_SelTblRowOrCol( bool bRow, bool 
bRowSimple )
                    static_cast<const SwCellFrm*>(pEndFrm),
                    aBoxes, bSelectUp ? 0 : &aCells, eType );
 
-        if( aBoxes.empty() || ( !bSelectUp && 4 != aCells.Count() ) )
+        if( aBoxes.empty() || ( !bSelectUp && 4 != aCells.size() ) )
             return sal_False;
 
         if ( bSelectUp )
diff --git a/sw/source/core/frmedt/fetab.cxx b/sw/source/core/frmedt/fetab.cxx
index 3d3a1ae..9da85cd 100644
--- a/sw/source/core/frmedt/fetab.cxx
+++ b/sw/source/core/frmedt/fetab.cxx
@@ -2345,12 +2345,12 @@ sal_Bool lcl_IsFormulaSelBoxes( const SwTable& rTbl, 
const SwTblBoxFormula& rFml
     for( SwSelBoxes::reverse_iterator it = aBoxes.rbegin(); it != 
aBoxes.rend(); ++it )
     {
         SwTableBox* pBox = it->second;
-        sal_uInt16 i;
-        for( i = 0; i < rCells.Count(); ++i )
-            if( rCells[ i ]->GetTabBox() == pBox )
+        SwCellFrms::iterator iC;
+        for( iC = rCells.begin(); iC != rCells.end(); ++iC )
+            if( (*iC)->GetTabBox() == pBox )
                 break;      // found
 
-        if( i == rCells.Count() )
+        if( iC == rCells.end() )
             return sal_False;
     }
 
@@ -2371,7 +2371,7 @@ sal_Bool SwFEShell::GetAutoSum( String& rFml ) const
     if( ::GetAutoSumSel( *this, aCells ))
     {
         sal_uInt16 nW = 0, nInsPos = 0;
-        for( sal_uInt16 n = aCells.Count(); n; )
+        for( size_t n = aCells.size(); n; )
         {
             SwCellFrm* pCFrm = aCells[ --n ];
             sal_uInt16 nBoxW = pCFrm->GetTabBox()->IsFormulaOrValueBox();
@@ -2393,7 +2393,7 @@ sal_Bool SwFEShell::GetAutoSum( String& rFml ) const
                 {
                     nW = RES_BOXATR_VALUE;
                     // restore previous spaces!
-                    for( sal_uInt16 i = aCells.Count(); n+1 < i; )
+                    for( size_t i = aCells.size(); n+1 < i; )
                     {
                         String sTmp( String::CreateFromAscii(
                                 RTL_CONSTASCII_STRINGPARAM( "|<" )) );
@@ -2431,7 +2431,7 @@ sal_Bool SwFEShell::GetAutoSum( String& rFml ) const
                         nW = RES_BOXATR_VALUE;
                         rFml.Erase( nInsPos );
                         // restore previous spaces!
-                        for( sal_uInt16 i = aCells.Count(); n+1 < i; )
+                        for( size_t i = aCells.size(); n+1 < i; )
                         {
                             String sTmp( String::CreateFromAscii(
                                     RTL_CONSTASCII_STRINGPARAM( "|<" )) );
diff --git a/sw/source/core/frmedt/tblsel.cxx b/sw/source/core/frmedt/tblsel.cxx
index 2a4123e..c6a8b64 100644
--- a/sw/source/core/frmedt/tblsel.cxx
+++ b/sw/source/core/frmedt/tblsel.cxx
@@ -74,9 +74,6 @@
 #undef      DEL_EMPTY_BOXES_AT_START_AND_END
 #define     DEL_ALL_EMPTY_BOXES
 
-
-SV_IMPL_PTRARR( SwCellFrms, SwCellFrm* )
-
 struct _CmpLPt
 {
     Point aPos;
@@ -358,7 +355,7 @@ void GetTblSel( const SwLayoutFrm* pStart, const 
SwLayoutFrm* pEnd,
                                        aTopLeft.X() <  aCurrentTopLeft.X() ) )
                                 {
                                     aCurrentTopLeft = aTopLeft;
-                                    pCurrentTopLeftFrm = static_cast<const 
SwCellFrm*>( pCell );
+                                    pCurrentTopLeftFrm = static_cast< const 
SwCellFrm* >( pCell );
                                 }
 
                                 if ( aTopRight.Y() < aCurrentTopRight.Y() ||
@@ -366,7 +363,7 @@ void GetTblSel( const SwLayoutFrm* pStart, const 
SwLayoutFrm* pEnd,
                                        aTopRight.X() >  aCurrentTopRight.X() ) 
)
                                 {
                                     aCurrentTopRight = aTopRight;
-                                    pCurrentTopRightFrm = static_cast<const 
SwCellFrm*>( pCell );
+                                    pCurrentTopRightFrm = static_cast< const 
SwCellFrm* >( pCell );
                                 }
 
                                 if ( aBottomLeft.Y() > aCurrentBottomLeft.Y() 
||
@@ -374,7 +371,7 @@ void GetTblSel( const SwLayoutFrm* pStart, const 
SwLayoutFrm* pEnd,
                                        aBottomLeft.X() <  
aCurrentBottomLeft.X() ) )
                                 {
                                     aCurrentBottomLeft = aBottomLeft;
-                                    pCurrentBottomLeftFrm = static_cast<const 
SwCellFrm*>( pCell );
+                                    pCurrentBottomLeftFrm = static_cast< const 
SwCellFrm* >( pCell );
                                 }
 
                                 if ( aBottomRight.Y() > 
aCurrentBottomRight.Y() ||
@@ -382,7 +379,7 @@ void GetTblSel( const SwLayoutFrm* pStart, const 
SwLayoutFrm* pEnd,
                                        aBottomRight.X() >  
aCurrentBottomRight.X() ) )
                                 {
                                     aCurrentBottomRight = aBottomRight;
-                                    pCurrentBottomRightFrm = static_cast<const 
SwCellFrm*>( pCell );
+                                    pCurrentBottomRightFrm = static_cast< 
const SwCellFrm* >( pCell );
                                 }
 
                             }
@@ -403,11 +400,11 @@ void GetTblSel( const SwLayoutFrm* pStart, const 
SwLayoutFrm* pEnd,
 
         if ( pCells )
         {
-            pCells->Remove( 0, pCells->Count() );
-            pCells->Insert( pCurrentTopLeftFrm, 0 );
-            pCells->Insert( pCurrentTopRightFrm, 1 );
-            pCells->Insert( pCurrentBottomLeftFrm, 2 );
-            pCells->Insert( pCurrentBottomRightFrm, 3 );
+            pCells->clear();
+            pCells->push_back( const_cast< SwCellFrm* >(pCurrentTopLeftFrm) );
+            pCells->push_back( const_cast< SwCellFrm* >(pCurrentTopRightFrm) );
+            pCells->push_back( const_cast< SwCellFrm* >(pCurrentBottomLeftFrm) 
);
+            pCells->push_back( const_cast< SwCellFrm* 
>(pCurrentBottomRightFrm) );
         }
 
         if( bTblIsValid )
@@ -773,7 +770,7 @@ sal_Bool GetAutoSumSel( const SwCrsrShell& rShell, 
SwCellFrms& rBoxes )
                     if( pCell == pSttCell )
                     {
                         sal_uInt16 nWhichId = 0;
-                        for( sal_uInt16 n = rBoxes.Count(); n; )
+                        for( size_t n = rBoxes.size(); n; )
                             if( USHRT_MAX != ( nWhichId = rBoxes[ --n ]
                                 ->GetTabBox()->IsFormulaOrValueBox() ))
                                 break;
@@ -800,7 +797,7 @@ sal_Bool GetAutoSumSel( const SwCrsrShell& rShell, 
SwCellFrms& rBoxes )
                 }
 
                 if( pUpperCell )
-                    rBoxes.Insert( pUpperCell, rBoxes.Count() );
+                    rBoxes.push_back( const_cast< SwCellFrm* >(pUpperCell) );
             }
             if( bFound )
             {
@@ -817,7 +814,7 @@ sal_Bool GetAutoSumSel( const SwCrsrShell& rShell, 
SwCellFrms& rBoxes )
     {
         bFound = sal_False;
 
-        rBoxes.Remove( 0, rBoxes.Count() );
+        rBoxes.clear();
         aUnions.DeleteAndDestroy( 0, aUnions.Count() );
         ::MakeSelUnions( aUnions, pStart, pEnd, 
nsSwTblSearchType::TBLSEARCH_ROW );
 
@@ -842,7 +839,7 @@ sal_Bool GetAutoSumSel( const SwCrsrShell& rShell, 
SwCellFrms& rBoxes )
                         if( pCell == pSttCell )
                         {
                             sal_uInt16 nWhichId = 0;
-                            for( sal_uInt16 n = rBoxes.Count(); n; )
+                            for( size_t n = rBoxes.size(); n; )
                                 if( USHRT_MAX != ( nWhichId = rBoxes[ --n ]
                                     ->GetTabBox()->IsFormulaOrValueBox() ))
                                     break;
@@ -857,8 +854,8 @@ sal_Bool GetAutoSumSel( const SwCrsrShell& rShell, 
SwCellFrms& rBoxes )
                         OSL_ENSURE( pCell->IsCellFrm(), "Frame without cell" );
                         if( ::IsFrmInTblSel( pUnion->GetUnion(), pCell ) )
                         {
-                            const SwCellFrm* pC = (SwCellFrm*)pCell;
-                            rBoxes.Insert( pC, rBoxes.Count() );
+                            SwCellFrm* pC = (SwCellFrm*)pCell;
+                            rBoxes.push_back( pC );
                         }
                         if( pCell->GetNext() )
                         {
-- 
1.7.5.4

_______________________________________________
LibreOffice mailing list
LibreOffice@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/libreoffice

Reply via email to