Hi Kohei,
Thanks for review!

> First, for your svl patch:
> 
> 1) in SfxIntegerListItem::GetList(), you do
> 
> +        rList.insert( aIt, m_aList[n] );
> 
> but you can simply call push_back here to append new data to the end of
> the vector.  Also, let's use pre-increment on iterators in the "for"
> loop there i.e. instead of doing aIt++, do ++aIt.  Post-increment on
> iterators is generally more expensive than pre-increment, so it's best
> to stick with pre-increments.

Done, and with push_back we don't need iterator.

> 2) Your new constructors take arrays of different integer type; one
> takes std::vector<sal_uLong> while the other takes
> uno::Sequence<sal_Int32>.  Let's just stick with one type and use
> sal_Int32 in both cases since that's the integer type that this class
> uses internally.

Done and checked in other places to use right type.

> And for your sc patch:
> 
> 3) In ScTabViewShell::Execute() you do
> 
> -            SvULongs aIndexList( 4, 4 );
> +            ::std::vector < sal_uLong > aIndexList( 4, 4 );
> 
> but this actually changes the behavior of the code.  The arguments to
> SvULong's constructor controls how the internal array is laid out during
> initialization but it doesn't populate the container with data.
> Vector's ctor arguments OTOH populate the container with data.  So, your
> new code initializes aIndexList with 4 elements of value 4, which is not
> what the code intends to do.  You can simply do without passing any
> arguments to aIndexList there.

Done, Now I understand the SvULong's constructor. Also changed type to
sal_uInt32.

> 4) Last but not least, please state that you are submitting your patches
> under LGPLv3+/MPL 1.1.

Of course and future also.

Best Regards,
        Maciej

>From a4f2da5241afdd8062f9611ca1f580df1c2ffe54 Mon Sep 17 00:00:00 2001
From: Maciej Rumianowski <[email protected]>
Date: Tue, 19 Jul 2011 10:50:54 +0200
Subject: [PATCH] Get rid of SvULongs in calc

Instead of SvULongs use ::std::vector < sal_Int32 >
---
 .../itemsetwrapper/DataPointItemConverter.cxx      |    7 +------
 .../itemsetwrapper/SeriesOptionsItemConverter.cxx  |    7 +------
 chart2/source/view/main/ChartItemPool.cxx          |    8 +++-----
 sc/source/ui/docshell/impex.cxx                    |   11 +++++------
 sc/source/ui/view/tabvwsh3.cxx                     |   11 +++++------
 5 files changed, 15 insertions(+), 29 deletions(-)

diff --git a/chart2/source/controller/itemsetwrapper/DataPointItemConverter.cxx b/chart2/source/controller/itemsetwrapper/DataPointItemConverter.cxx
index 3802ffc..76e7db0 100644
--- a/chart2/source/controller/itemsetwrapper/DataPointItemConverter.cxx
+++ b/chart2/source/controller/itemsetwrapper/DataPointItemConverter.cxx
@@ -54,8 +54,6 @@
 #include <editeng/brshitem.hxx>
 //SfxIntegerListItem
 #include <svl/ilstitem.hxx>
-#define _SVSTDARR_ULONGS
-#include <svl/svstdarr.hxx>
 #include <vcl/graph.hxx>
 #include <com/sun/star/graphic/XGraphic.hpp>
 
@@ -641,10 +639,7 @@ void DataPointItemConverter::FillSpecialItem(
 
         case SCHATTR_DATADESCR_AVAILABLE_PLACEMENTS:
         {
-            SvULongs aList;
-            for ( sal_Int32 nN=0; nN<m_aAvailableLabelPlacements.getLength(); nN++ )
-                aList.Insert( m_aAvailableLabelPlacements[nN], sal::static_int_cast< sal_uInt16 >(nN) );
-            rOutItemSet.Put( SfxIntegerListItem( nWhichId, aList ) );
+            rOutItemSet.Put( SfxIntegerListItem( nWhichId, m_aAvailableLabelPlacements ) );
         }
         break;
 
diff --git a/chart2/source/controller/itemsetwrapper/SeriesOptionsItemConverter.cxx b/chart2/source/controller/itemsetwrapper/SeriesOptionsItemConverter.cxx
index a199b66..7df2d61 100644
--- a/chart2/source/controller/itemsetwrapper/SeriesOptionsItemConverter.cxx
+++ b/chart2/source/controller/itemsetwrapper/SeriesOptionsItemConverter.cxx
@@ -51,8 +51,6 @@
 
 //SfxIntegerListItem
 #include <svl/ilstitem.hxx>
-#define _SVSTDARR_ULONGS
-#include <svl/svstdarr.hxx>
 
 #include <rtl/math.hxx>
 #include <functional>
@@ -433,10 +431,7 @@ void SeriesOptionsItemConverter::FillSpecialItem(
         }
         case SCHATTR_AVAILABLE_MISSING_VALUE_TREATMENTS:
         {
-            SvULongs aList;
-            for ( sal_Int32 nN=0; nN<m_aSupportedMissingValueTreatments.getLength(); nN++ )
-                aList.Insert( m_aSupportedMissingValueTreatments[nN], sal::static_int_cast< sal_uInt16 >(nN) );
-            rOutItemSet.Put( SfxIntegerListItem( nWhichId, aList ) );
+            rOutItemSet.Put( SfxIntegerListItem( nWhichId, m_aSupportedMissingValueTreatments ) );
             break;
         }
         case SCHATTR_INCLUDE_HIDDEN_CELLS:
diff --git a/chart2/source/view/main/ChartItemPool.cxx b/chart2/source/view/main/ChartItemPool.cxx
index 2cdac8f..aa81e06 100644
--- a/chart2/source/view/main/ChartItemPool.cxx
+++ b/chart2/source/view/main/ChartItemPool.cxx
@@ -39,10 +39,9 @@
 #include <svl/stritem.hxx>
 #include <svl/rectitem.hxx>
 #include <svl/ilstitem.hxx>
-#define _SVSTDARR_ULONGS
-#include <svl/svstdarr.hxx>
 #include <editeng/editids.hrc>
 #include <svx/svxids.hrc>
+#include <vector>
 
 #include <com/sun/star/chart2/LegendPosition.hpp>
 
@@ -63,8 +62,7 @@ ChartItemPool::ChartItemPool():
     ppPoolDefaults[SCHATTR_DATADESCR_SHOW_SYMBOL    - SCHATTR_START] = new SfxBoolItem(SCHATTR_DATADESCR_SHOW_SYMBOL);
     ppPoolDefaults[SCHATTR_DATADESCR_SEPARATOR      - SCHATTR_START] = new SfxStringItem(SCHATTR_DATADESCR_SEPARATOR,C2U(" "));
     ppPoolDefaults[SCHATTR_DATADESCR_PLACEMENT      - SCHATTR_START] = new SfxInt32Item(SCHATTR_DATADESCR_PLACEMENT,0);
-    SvULongs aTmp;
-    ppPoolDefaults[SCHATTR_DATADESCR_AVAILABLE_PLACEMENTS - SCHATTR_START] = new SfxIntegerListItem(SCHATTR_DATADESCR_AVAILABLE_PLACEMENTS,aTmp);
+    ppPoolDefaults[SCHATTR_DATADESCR_AVAILABLE_PLACEMENTS - SCHATTR_START] = new SfxIntegerListItem(SCHATTR_DATADESCR_AVAILABLE_PLACEMENTS, ::std::vector < sal_Int32 >() );
     ppPoolDefaults[SCHATTR_DATADESCR_NO_PERCENTVALUE    - SCHATTR_START] = new SfxBoolItem(SCHATTR_DATADESCR_NO_PERCENTVALUE);
     ppPoolDefaults[SCHATTR_PERCENT_NUMBERFORMAT_VALUE  - SCHATTR_START] = new SfxUInt32Item(SCHATTR_PERCENT_NUMBERFORMAT_VALUE, 0);
     ppPoolDefaults[SCHATTR_PERCENT_NUMBERFORMAT_SOURCE - SCHATTR_START] = new SfxBoolItem(SCHATTR_PERCENT_NUMBERFORMAT_SOURCE);
@@ -157,7 +155,7 @@ ChartItemPool::ChartItemPool():
     ppPoolDefaults[SCHATTR_CLOCKWISE            - SCHATTR_START] = new SfxBoolItem( SCHATTR_CLOCKWISE, sal_False );
 
     ppPoolDefaults[SCHATTR_MISSING_VALUE_TREATMENT    - SCHATTR_START] = new SfxInt32Item(SCHATTR_MISSING_VALUE_TREATMENT, 0);
-    ppPoolDefaults[SCHATTR_AVAILABLE_MISSING_VALUE_TREATMENTS - SCHATTR_START] = new SfxIntegerListItem(SCHATTR_AVAILABLE_MISSING_VALUE_TREATMENTS,aTmp);
+    ppPoolDefaults[SCHATTR_AVAILABLE_MISSING_VALUE_TREATMENTS - SCHATTR_START] = new SfxIntegerListItem(SCHATTR_AVAILABLE_MISSING_VALUE_TREATMENTS, ::std::vector < sal_Int32 >() );
     ppPoolDefaults[SCHATTR_INCLUDE_HIDDEN_CELLS - SCHATTR_START] = new SfxBoolItem(SCHATTR_INCLUDE_HIDDEN_CELLS, sal_True);
 
     ppPoolDefaults[SCHATTR_AXIS_FOR_ALL_SERIES  - SCHATTR_START] = new SfxInt32Item(SCHATTR_AXIS_FOR_ALL_SERIES, 0);
diff --git a/sc/source/ui/docshell/impex.cxx b/sc/source/ui/docshell/impex.cxx
index 7b0e30d..d13f3e2 100644
--- a/sc/source/ui/docshell/impex.cxx
+++ b/sc/source/ui/docshell/impex.cxx
@@ -49,8 +49,6 @@ class StarBASIC;
 #include <rtl/math.hxx>
 #include <svtools/htmlout.hxx>
 #include <svl/zforlist.hxx>
-#define _SVSTDARR_ULONGS
-#include <svl/svstdarr.hxx>
 #include <sot/formats.hxx>
 #include <sfx2/mieclip.hxx>
 #include <unotools/charclass.hxx>
@@ -58,6 +56,7 @@ class StarBASIC;
 #include <unotools/calendarwrapper.hxx>
 #include <com/sun/star/i18n/CalendarFieldIndex.hpp>
 #include <unotools/transliterationwrapper.hxx>
+#include <vector>
 
 #include "global.hxx"
 #include "scerrors.hxx"
@@ -1544,7 +1543,7 @@ sal_Bool ScImportExport::Sylk2Doc( SvStream& rStrm )
     SCROW nEndRow = aRange.aEnd.Row();
     sal_uLong nOldPos = rStrm.Tell();
     sal_Bool bData = sal_Bool( !bSingle );
-    SvULongs aFormats;
+    ::std::vector< sal_uInt32 > aFormats;
 
     if( !bSingle)
         bOk = StartPaste();
@@ -1730,9 +1729,9 @@ sal_Bool ScImportExport::Sylk2Doc( SvStream& rStrm )
                     if( nCol > nEndCol )
                         nEndCol = nCol;
                 }
-                if ( 0 <= nFormat && nFormat < aFormats.Count() )
+                if ( 0 <= nFormat && nFormat < (sal_Int32)aFormats.size() )
                 {
-                    sal_uLong nKey = aFormats[(sal_uInt16)nFormat];
+                    sal_uInt32 nKey = aFormats[nFormat];
                     pDoc->ApplyAttr( nCol, nRow, aRange.aStart.Tab(),
                             SfxUInt32Item( ATTR_VALUE_FORMAT, nKey ) );
                 }
@@ -1759,7 +1758,7 @@ sal_Bool ScImportExport::Sylk2Doc( SvStream& rStrm )
                         ScGlobal::eLnge );
                     if ( nCheckPos )
                         nKey = 0;
-                    aFormats.Insert( nKey, aFormats.Count() );
+                    aFormats.push_back( nKey );
                 }
             }
             else if( cTag == 'I' && *p == 'D' )
diff --git a/sc/source/ui/view/tabvwsh3.cxx b/sc/source/ui/view/tabvwsh3.cxx
index 270542c..b8b1069 100644
--- a/sc/source/ui/view/tabvwsh3.cxx
+++ b/sc/source/ui/view/tabvwsh3.cxx
@@ -73,8 +73,7 @@
 #include "protectiondlg.hxx"
 
 #include <svl/ilstitem.hxx>
-#define _SVSTDARR_ULONGS
-#include <svl/svstdarr.hxx>
+#include <vector>
 
 #include <svx/zoomslideritem.hxx>
 #include <svx/svxdlg.hxx>
@@ -810,7 +809,7 @@ void ScTabViewShell::Execute( SfxRequest& rReq )
             SCTAB nTabCount = rDoc.GetTableCount();
             SCTAB nTab;
 
-            SvULongs aIndexList( 4, 4 );
+            ::std::vector < sal_Int32 > aIndexList;
             SFX_REQUEST_ARG( rReq, pItem, SfxIntegerListItem, SID_SELECT_TABLES, false );
             if ( pItem )
                 pItem->GetList( aIndexList );
@@ -839,7 +838,7 @@ void ScTabViewShell::Execute( SfxRequest& rReq )
                     sal_uInt16 nSelCount = pDlg->GetSelectEntryCount();
                     sal_uInt16 nSelIx;
                     for( nSelIx = 0; nSelIx < nSelCount; ++nSelIx )
-                        aIndexList.Insert( pDlg->GetSelectEntryPos( nSelIx ), nSelIx );
+                        aIndexList.insert( aIndexList.begin()+nSelIx, pDlg->GetSelectEntryPos( nSelIx ) );
                     delete pDlg;
                     rReq.AppendItem( SfxIntegerListItem( SID_SELECT_TABLES, aIndexList ) );
                 }
@@ -847,9 +846,9 @@ void ScTabViewShell::Execute( SfxRequest& rReq )
                     rReq.Ignore();
             }
 
-            if ( aIndexList.Count() )
+            if ( aIndexList.size() )
             {
-                sal_uInt16 nSelCount = aIndexList.Count();
+                sal_uInt16 nSelCount = aIndexList.size();
                 sal_uInt16 nSelIx;
                 SCTAB nFirstVisTab = 0;
 
-- 
1.7.4.1

>From a61e25e775bff90c83e9ef97bb7396334ef41926 Mon Sep 17 00:00:00 2001
From: Maciej Rumianowski <[email protected]>
Date: Tue, 19 Jul 2011 10:19:45 +0200
Subject: [PATCH] Port SfxIntegerListItem to ::std::vector

For calc to be free of SvULongs SfxIntegerListItem has to use SvULongs.
Additionaly a constructor with Sequence used in calc.
---
 svl/inc/svl/ilstitem.hxx      |    8 ++++----
 svl/source/items/ilstitem.cxx |   24 +++++++++++++++---------
 2 files changed, 19 insertions(+), 13 deletions(-)

diff --git a/svl/inc/svl/ilstitem.hxx b/svl/inc/svl/ilstitem.hxx
index 286edf2..cd77741 100644
--- a/svl/inc/svl/ilstitem.hxx
+++ b/svl/inc/svl/ilstitem.hxx
@@ -32,8 +32,7 @@
 #include "svl/svldllapi.h"
 #include <svl/poolitem.hxx>
 #include <com/sun/star/uno/Sequence.hxx>
-
-class SvULongs;
+#include <vector>
 
 class SVL_DLLPUBLIC SfxIntegerListItem : public SfxPoolItem
 {
@@ -43,7 +42,8 @@ public:
     TYPEINFO();
 
     SfxIntegerListItem();
-    SfxIntegerListItem( sal_uInt16 nWhich, const SvULongs& rList );
+    SfxIntegerListItem( sal_uInt16 nWhich, const ::std::vector < sal_Int32 >& rList );
+    SfxIntegerListItem( sal_uInt16 nWhich, const ::com::sun::star::uno::Sequence < sal_Int32 >& rList );
     SfxIntegerListItem( const SfxIntegerListItem& rItem );
     ~SfxIntegerListItem();
 
@@ -52,7 +52,7 @@ public:
     ::com::sun::star::uno::Sequence < sal_Int32 > GetConstSequence() const
     { return SAL_CONST_CAST(SfxIntegerListItem *, this)->GetSequence(); }
 
-    void                    GetList( SvULongs& rList ) const;
+    void                    GetList( ::std::vector < sal_Int32 >& rList ) const;
 
     virtual int 			operator==( const SfxPoolItem& ) const;
     virtual SfxPoolItem*    Clone( SfxItemPool *pPool = 0 ) const;
diff --git a/svl/source/items/ilstitem.cxx b/svl/source/items/ilstitem.cxx
index 1a897a8..a699f6c 100644
--- a/svl/source/items/ilstitem.cxx
+++ b/svl/source/items/ilstitem.cxx
@@ -35,20 +35,25 @@
 
 #include <svl/ilstitem.hxx>
 
-#define _SVSTDARR_ULONGS
-#include <svl/svstdarr.hxx>
-
 TYPEINIT1_AUTOFACTORY(SfxIntegerListItem, SfxPoolItem);
 
 SfxIntegerListItem::SfxIntegerListItem()
 {
 }
 
-SfxIntegerListItem::SfxIntegerListItem( sal_uInt16 which, const SvULongs& rList )
+SfxIntegerListItem::SfxIntegerListItem( sal_uInt16 which, const ::std::vector < sal_Int32 >& rList )
+    : SfxPoolItem( which )
+{
+    m_aList.realloc( rList.size() );
+    for ( sal_uInt16 n=0; n<rList.size(); ++n )
+        m_aList[n] = rList[n];
+}
+
+SfxIntegerListItem::SfxIntegerListItem( sal_uInt16 which, const ::com::sun::star::uno::Sequence < sal_Int32 >& rList )
     : SfxPoolItem( which )
 {
-    m_aList.realloc( rList.Count() );
-    for ( sal_uInt16 n=0; n<rList.Count(); n++ )
+    m_aList.realloc( rList.getLength() );
+    for ( sal_Int32 n=0; n<rList.getLength(); ++n )
         m_aList[n] = rList[n];
 }
 
@@ -97,10 +102,11 @@ bool SfxIntegerListItem::QueryValue( com::sun::star::uno::Any& rVal, sal_uInt8 )
     return true;
 }
 
-void SfxIntegerListItem::GetList( SvULongs& rList ) const
+void SfxIntegerListItem::GetList( ::std::vector< sal_Int32 >& rList ) const
 {
-    for ( sal_Int32 n=0; n<m_aList.getLength(); n++ )
-        rList.Insert( m_aList[n], sal::static_int_cast< sal_uInt16 >(n) );
+    rList.reserve( m_aList.getLength() );
+    for ( sal_Int32 n=0; n<m_aList.getLength(); ++n )
+        rList.push_back( m_aList[n] );
 }
 
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
-- 
1.7.4.1

_______________________________________________
LibreOffice mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/libreoffice

Reply via email to