From c7494e72af73241ca5bb4f4e06fe7fecf5a676df Mon Sep 17 00:00:00 2001
From: Noel Grandin <noel@peralex.com>
Date: Thu, 2 Aug 2012 13:32:13 +0200
Subject: [PATCH 1/5] STL'ify
 DECLARE_CONTAINER_SORT(SwXMLTableColumnsSortByWidth_Impl)

Change-Id: Icd480f74dacb41d869fb511a0d2630d8b3711343
---
 sw/source/filter/xml/xmltble.cxx |   32 +++++++++++++++-----------------
 1 file changed, 15 insertions(+), 17 deletions(-)

diff --git a/sw/source/filter/xml/xmltble.cxx b/sw/source/filter/xml/xmltble.cxx
index db5ff9c..eb3c518 100644
--- a/sw/source/filter/xml/xmltble.cxx
+++ b/sw/source/filter/xml/xmltble.cxx
@@ -95,14 +95,16 @@ public:
     sal_uInt32 GetRelWidth() const { return nRelWidth; }
 };
 
-sal_Int32 SwXMLTableColumnCmpWidth_Impl( const SwXMLTableColumn_Impl& r1,
-                                           const SwXMLTableColumn_Impl& r2 )
+struct SwXMLTableColumnCmpWidth_Impl
 {
-    sal_Int32 n = (sal_Int32)r1.GetWidthOpt() - (sal_Int32)r2.GetWidthOpt();
-    if( !n )
-        n = (sal_Int32)r1.GetRelWidth() - (sal_Int32)r2.GetRelWidth();
-    return n;
-}
+    bool operator()( SwXMLTableColumn_Impl* const& lhs, SwXMLTableColumn_Impl* const& rhs ) const
+    {
+        sal_Int32 n = (sal_Int32)lhs->GetWidthOpt() - (sal_Int32)rhs->GetWidthOpt();
+        if( !n )
+            n = (sal_Int32)lhs->GetRelWidth() - (sal_Int32)rhs->GetRelWidth();
+        return n < 0;
+    }
+};
 
 // ---------------------------------------------------------------------
 
@@ -111,10 +113,7 @@ public:
     ~SwXMLTableColumns_Impl() { DeleteAndDestroyAll(); }
 };
 
-DECLARE_CONTAINER_SORT( SwXMLTableColumnsSortByWidth_Impl,
-                        SwXMLTableColumn_Impl )
-IMPL_CONTAINER_SORT( SwXMLTableColumnsSortByWidth_Impl, SwXMLTableColumn_Impl,
-                     SwXMLTableColumnCmpWidth_Impl )
+class SwXMLTableColumnsSortByWidth_Impl : public o3tl::sorted_vector<SwXMLTableColumn_Impl*, SwXMLTableColumnCmpWidth_Impl> {};
 
 class SwXMLTableLines_Impl
 {
@@ -630,11 +629,10 @@ void SwXMLExport::ExportTableLinesAutoStyles( const SwTableLines& rLines,
                 pColumn->SetWidthOpt( nColAbsWidth, sal_False );
             }
 
-            sal_uLong nExpPos = 0;
-            if( rExpCols.Seek_Entry( pColumn, &nExpPos ) )
+            SwXMLTableColumnsSortByWidth_Impl::const_iterator it = rExpCols.find( pColumn );
+            if( it != rExpCols.end() )
             {
-                pColumn->SetStyleName(
-                        rExpCols.GetObject(nExpPos)->GetStyleName() );
+                pColumn->SetStyleName( (*it)->GetStyleName() );
             }
             else
             {
@@ -653,7 +651,7 @@ void SwXMLExport::ExportTableLinesAutoStyles( const SwTableLines& rLines,
 
                 pColumn->SetStyleName( sBuffer.makeStringAndClear() );
                 ExportTableColumnStyle( *pColumn );
-                rExpCols.Insert( pColumn );
+                rExpCols.insert( pColumn );
             }
         }
     }
@@ -773,7 +771,7 @@ void SwXMLExport::ExportTableAutoStyles( const SwTableNode& rTblNd )
         ExportTableFmt( *pTblFmt, nAbsWidth );
 
         OUString sName( pTblFmt->GetName() );
-        SwXMLTableColumnsSortByWidth_Impl aExpCols( 10, 10 );
+        SwXMLTableColumnsSortByWidth_Impl aExpCols;
         SwXMLTableFrmFmtsSort_Impl aExpRows( 10, 10 );
         SwXMLTableFrmFmtsSort_Impl aExpCells( 10, 10 );
         SwXMLTableInfo_Impl aTblInfo( &rTbl );
-- 
1.7.9.5

