Hi *,
Simple Patch replacing SvULongs with std::vector. Related Bug 38831.
Cheers,
Maciej
From 6e3f88f2673c507ce2f3d9ab4bdc92c8be75bd0a Mon Sep 17 00:00:00 2001
From: Maciej Rumianowski <maciej.rumianowski@gmail.com>
Date: Tue, 27 Sep 2011 22:04:20 +0200
Subject: [PATCH] Replace SvULongs with std::vector in sfx2
Bug 38831, replace SvULongs with std::vector in sfx2 and related svtools
---
sfx2/inc/sfx2/frmhtml.hxx | 1 -
sfx2/source/bastyp/frmhtml.cxx | 4 ----
sfx2/source/bastyp/sfxhtml.cxx | 18 ++++++++----------
sfx2/source/control/dispatch.cxx | 12 +++++-------
sfx2/source/doc/docfile.cxx | 13 ++++++-------
svtools/inc/svtools/parhtml.hxx | 4 +---
svtools/source/svhtml/parhtml.cxx | 21 +++++++--------------
svx/source/items/clipfmtitem.cxx | 17 +++++++++--------
8 files changed, 36 insertions(+), 54 deletions(-)
diff --git a/sfx2/inc/sfx2/frmhtml.hxx b/sfx2/inc/sfx2/frmhtml.hxx
index b365ab9..6f88b43 100644
--- a/sfx2/inc/sfx2/frmhtml.hxx
+++ b/sfx2/inc/sfx2/frmhtml.hxx
@@ -38,7 +38,6 @@
class SfxFrameHTMLParser;
class _SfxFrameHTMLContexts;
class SfxFrameSetObjectShell;
-class SvULongs;
class SfxMedium;
namespace svtools { class AsynchronLink; }
diff --git a/sfx2/source/bastyp/frmhtml.cxx b/sfx2/source/bastyp/frmhtml.cxx
index 75cd28b..12cbe09 100644
--- a/sfx2/source/bastyp/frmhtml.cxx
+++ b/sfx2/source/bastyp/frmhtml.cxx
@@ -33,10 +33,6 @@
#include <svtools/htmltokn.h>
#include <svtools/asynclink.hxx>
-#define _SVSTDARR_USHORTS
-#define _SVSTDARR_ULONGS
-#include <svl/svstdarr.hxx>
-
#include <sfx2/sfx.hrc>
#include <sfx2/frmhtml.hxx>
diff --git a/sfx2/source/bastyp/sfxhtml.cxx b/sfx2/source/bastyp/sfxhtml.cxx
index 002e2ce..a887640 100644
--- a/sfx2/source/bastyp/sfxhtml.cxx
+++ b/sfx2/source/bastyp/sfxhtml.cxx
@@ -42,10 +42,6 @@
#include <svtools/imapobj.hxx>
#include <svtools/imappoly.hxx>
#include <svtools/imaprect.hxx>
-#ifndef _SVSTDARR_ULONGS_DECL
-#define _SVSTDARR_ULONGS
-#include <svl/svstdarr.hxx>
-#endif
#include <svl/zforlist.hxx>
#include <rtl/tencinfo.h>
#include <tools/tenccvt.hxx>
@@ -54,6 +50,8 @@
#include <com/sun/star/beans/XPropertyContainer.hpp>
+#include <vector>
+
using namespace ::com::sun::star;
@@ -128,7 +126,7 @@ bool SfxHTMLParser::ParseAreaOptions(ImageMap * pImageMap, const String& rBaseUR
DBG_ASSERT( pImageMap, "ParseAreaOptions: no Image-Map" );
sal_uInt16 nShape = IMAP_OBJ_RECTANGLE;
- SvULongs aCoords;
+ std::vector<sal_uInt32> aCoords;
String aName, aHRef, aAlt, aTarget, sEmpty;
sal_Bool bNoHRef = sal_False;
SvxMacroTableDtor aMacroTbl;
@@ -147,7 +145,7 @@ bool SfxHTMLParser::ParseAreaOptions(ImageMap * pImageMap, const String& rBaseUR
rOption.GetEnum( nShape, aAreaShapeOptEnums );
break;
case HTML_O_COORDS:
- rOption.GetNumbers( aCoords, sal_True );
+ rOption.GetNumbers( aCoords, true );
break;
case HTML_O_HREF:
aHRef = INetURLObject::GetAbsURL( rBaseURL, rOption.GetString() );
@@ -195,7 +193,7 @@ IMAPOBJ_SETEVENT:
switch( nShape )
{
case IMAP_OBJ_RECTANGLE:
- if( aCoords.Count() >=4 )
+ if( aCoords.size() >=4 )
{
Rectangle aRec( aCoords[0], aCoords[1],
aCoords[2], aCoords[3] );
@@ -207,7 +205,7 @@ IMAPOBJ_SETEVENT:
}
break;
case IMAP_OBJ_CIRCLE:
- if( aCoords.Count() >=3 )
+ if( aCoords.size() >=3 )
{
Point aPoint( aCoords[0], aCoords[1] );
IMapCircleObject aMapCObj( aPoint, aCoords[2],aHRef, aAlt, String(),
@@ -218,9 +216,9 @@ IMAPOBJ_SETEVENT:
}
break;
case IMAP_OBJ_POLYGON:
- if( aCoords.Count() >=6 )
+ if( aCoords.size() >=6 )
{
- sal_uInt16 nCount = aCoords.Count() / 2;
+ sal_uInt16 nCount = aCoords.size() / 2;
Polygon aPoly( nCount );
for( sal_uInt16 i=0; i<nCount; i++ )
aPoly[i] = Point( aCoords[2*i], aCoords[2*i+1] );
diff --git a/sfx2/source/control/dispatch.cxx b/sfx2/source/control/dispatch.cxx
index 7072c09..5aa16e1 100644
--- a/sfx2/source/control/dispatch.cxx
+++ b/sfx2/source/control/dispatch.cxx
@@ -43,8 +43,6 @@
#include <stdarg.h>
#include <stdlib.h> // due to bsearch
-#define _SVSTDARR_ULONGS
-#include <svl/svstdarr.hxx>
#include <svtools/helpopt.hxx>
#include <com/sun/star/frame/XLayoutManager.hpp>
#include <com/sun/star/beans/XPropertySet.hpp>
@@ -152,7 +150,7 @@ struct SfxDispatcher_Impl
sal_Bool* pInCallAliveFlag; // view the Destructor Stack
SfxObjectBars_Impl aObjBars[SFX_OBJECTBAR_MAX];
SfxObjectBars_Impl aFixedObjBars[SFX_OBJECTBAR_MAX];
- SvULongs aChildWins;
+ std::vector<sal_uInt32> aChildWins;
sal_uInt16 nActionLevel; // in EnterAction
sal_uInt32 nEventId; // EventId UserEvent
sal_Bool bUILocked; // Update disconnected (no flicker)
@@ -831,11 +829,11 @@ void SfxDispatcher::DoDeactivate_Impl( sal_Bool bMDI, SfxViewFrame* pNew )
SfxWorkWindow *pWorkWin = pImp->pFrame->GetFrame().GetWorkWindow_Impl();
if ( pWorkWin )
{
- for (sal_uInt16 n=0; n<pImp->aChildWins.Count();)
+ for (size_t n=0; n<pImp->aChildWins.size();)
{
SfxChildWindow *pWin = pWorkWin->GetChildWindow_Impl( (sal_uInt16) (
pImp->aChildWins[n] & 0xFFFF ) );
if (!pWin || (pWin && pWin->GetAlignment() == SFX_ALIGN_NOALIGNMENT))
- pImp->aChildWins.Remove(n);
+ pImp->aChildWins.erase(pImp->aChildWins.begin()+n);
else
n++;
}
@@ -1544,7 +1542,7 @@ void SfxDispatcher::_Update_Impl( sal_Bool bUIActive, sal_Bool bIsMDIApp,
sal_Bo
for (sal_uInt16 n=0; n<SFX_OBJECTBAR_MAX; n++)
pImp->aObjBars[n].nResId = 0;
- pImp->aChildWins.Remove(0, pImp->aChildWins.Count());
+ pImp->aChildWins.clear();
// bQuiet : own shells aren't considered for UI and SlotServer
// bNoUI: own Shells aren't considered fors UI
@@ -1646,7 +1644,7 @@ void SfxDispatcher::_Update_Impl( sal_Bool bUIActive, sal_Bool bIsMDIApp,
sal_Bo
if ( bUIActive || bIsActive )
pWorkWin->SetChildWindowVisible_Impl( nId, sal_True, nMode );
if ( bUIActive || bIsActive || !pWorkWin->IsFloating( (sal_uInt16) ( nId & 0xFFFF ) ) )
- pImp->aChildWins.Insert( nId, pImp->aChildWins.Count());
+ pImp->aChildWins.push_back( nId );
}
if ( bIsMDIApp || bIsIPOwner )
diff --git a/sfx2/source/doc/docfile.cxx b/sfx2/source/doc/docfile.cxx
index ddeadec..8140cc5 100644
--- a/sfx2/source/doc/docfile.cxx
+++ b/sfx2/source/doc/docfile.cxx
@@ -95,7 +95,6 @@
#include <cppuhelper/weakref.hxx>
#include <cppuhelper/implbase1.hxx>
-#define _SVSTDARR_ULONGS
#define _SVSTDARR_STRINGSDTOR
#include <svl/svstdarr.hxx>
@@ -3104,21 +3103,21 @@ sal_uInt16 SfxMedium::AddVersion_Impl( util::RevisionTag& rRevision )
if ( GetStorage().is() )
{
// To determine a unique name for the stream
- SvULongs aLongs;
+ std::vector<sal_uInt32> aLongs;
sal_Int32 nLength = pImp->aVersions.getLength();
for ( sal_Int32 m=0; m<nLength; m++ )
{
- sal_uInt32 nVer = (sal_uInt32) String( pImp->aVersions[m].Identifier
).Copy(7).ToInt32();
- sal_uInt16 n;
- for ( n=0; n<aLongs.Count(); n++ )
+ sal_uInt32 nVer = static_cast<sal_uInt32>(String( pImp->aVersions[m].Identifier
).Copy(7).ToInt32());
+ size_t n;
+ for ( n=0; n<aLongs.size(); ++n )
if ( nVer<aLongs[n] )
break;
- aLongs.Insert( nVer, n );
+ aLongs.insert( aLongs.begin()+n, nVer );
}
sal_uInt16 nKey;
- for ( nKey=0; nKey<aLongs.Count(); nKey++ )
+ for ( nKey=0; nKey<aLongs.size(); ++nKey )
if ( aLongs[nKey] > ( sal_uIntPtr ) nKey+1 )
break;
diff --git a/svtools/inc/svtools/parhtml.hxx b/svtools/inc/svtools/parhtml.hxx
index 627e787..ad228f5 100644
--- a/svtools/inc/svtools/parhtml.hxx
+++ b/svtools/inc/svtools/parhtml.hxx
@@ -32,7 +32,6 @@
#include "svtools/svtdllapi.h"
#include <tools/solar.h>
#include <tools/string.hxx>
-#include <svl/svarray.hxx>
#include <svtools/svparser.hxx>
#include <boost/ptr_container/ptr_vector.hpp>
@@ -45,7 +44,6 @@ namespace com { namespace sun { namespace star {
class Color;
class SvNumberFormatter;
-class SvULongs;
class SvKeyValueIterator;
#define HTMLFONTSZ1_DFLT 7
@@ -115,7 +113,7 @@ public:
sal_uInt32 GetNumber() const; // ... als Zahl
sal_Int32 GetSNumber() const; // ... als Zahl
- void GetNumbers( SvULongs &rLongs, // ... als Zahlen
+ void GetNumbers( std::vector<sal_uInt32> &rNumbers, // ... als Zahlen
bool bSpaceDelim=false ) const;
void GetColor( Color& ) const; // ... als Farbe
diff --git a/svtools/source/svhtml/parhtml.cxx b/svtools/source/svhtml/parhtml.cxx
index 770f03b..8ec3503 100644
--- a/svtools/source/svhtml/parhtml.cxx
+++ b/svtools/source/svhtml/parhtml.cxx
@@ -36,10 +36,6 @@
#include <tools/color.hxx>
#include <rtl/ustrbuf.hxx>
#include <rtl/strbuf.hxx>
-#ifndef _SVSTDARR_HXX
-#define _SVSTDARR_ULONGS
-#include <svl/svstdarr.hxx>
-#endif
#include <tools/tenccvt.hxx>
#include <tools/datetime.hxx>
@@ -176,10 +172,9 @@ sal_Int32 HTMLOption::GetSNumber() const
return aTmp.ToInt32();
}
-void HTMLOption::GetNumbers( SvULongs &rLongs, bool bSpaceDelim ) const
+void HTMLOption::GetNumbers( std::vector<sal_uInt32> &rNumbers, bool bSpaceDelim ) const
{
- if( rLongs.Count() )
- rLongs.Remove( 0, rLongs.Count() );
+ rNumbers.clear();
if( bSpaceDelim )
{
@@ -198,14 +193,14 @@ void HTMLOption::GetNumbers( SvULongs &rLongs, bool bSpaceDelim ) const
}
else if( bInNum )
{
- rLongs.Insert( nNum, rLongs.Count() );
+ rNumbers.push_back( nNum );
bInNum = false;
nNum = 0;
}
}
if( bInNum )
{
- rLongs.Insert( nNum, rLongs.Count() );
+ rNumbers.push_back( nNum );
}
}
else
@@ -222,23 +217,21 @@ void HTMLOption::GetNumbers( SvULongs &rLongs, bool bSpaceDelim ) const
nPos++;
if( nPos==aValue.Len() )
- rLongs.Insert( sal_uLong(0), rLongs.Count() );
+ rNumbers.push_back(0);
else
{
xub_StrLen nEnd = aValue.Search( (sal_Unicode)',', nPos );
if( STRING_NOTFOUND==nEnd )
{
sal_Int32 nTmp = aValue.Copy(nPos).ToInt32();
- rLongs.Insert( nTmp >= 0 ? (sal_uInt32)nTmp : 0,
- rLongs.Count() );
+ rNumbers.push_back( nTmp >= 0 ? (sal_uInt32)nTmp : 0 );
nPos = aValue.Len();
}
else
{
sal_Int32 nTmp =
aValue.Copy(nPos,nEnd-nPos).ToInt32();
- rLongs.Insert( nTmp >= 0 ? (sal_uInt32)nTmp : 0,
- rLongs.Count() );
+ rNumbers.push_back( nTmp >= 0 ? (sal_uInt32)nTmp : 0 );
nPos = nEnd+1;
}
}
diff --git a/svx/source/items/clipfmtitem.cxx b/svx/source/items/clipfmtitem.cxx
index 2f5e1fe..a1dcdf0 100644
--- a/svx/source/items/clipfmtitem.cxx
+++ b/svx/source/items/clipfmtitem.cxx
@@ -29,20 +29,21 @@
// MARKER(update_precomp.py): autogen include statement, do not remove
#include "precompiled_svx.hxx"
-#define _SVSTDARR_ULONGS
#define _SVSTDARR_STRINGSDTOR
#include <svl/svstdarr.hxx>
#include <svx/clipfmtitem.hxx>
#include <com/sun/star/frame/status/ClipboardFormats.hpp>
+#include <vector>
+
struct SvxClipboardFmtItem_Impl
{
SvStringsDtor aFmtNms;
- SvULongs aFmtIds;
+ std::vector<sal_uIntPtr> aFmtIds;
static String sEmptyStr;
- SvxClipboardFmtItem_Impl() : aFmtNms( 8, 8 ), aFmtIds( 8, 8 ) {}
+ SvxClipboardFmtItem_Impl() : aFmtNms( 8, 8 ) {}
SvxClipboardFmtItem_Impl( const SvxClipboardFmtItem_Impl& );
};
@@ -53,7 +54,7 @@ TYPEINIT1_FACTORY( SvxClipboardFmtItem, SfxPoolItem , new SvxClipboardFmtItem(0
SvxClipboardFmtItem_Impl::SvxClipboardFmtItem_Impl(
const SvxClipboardFmtItem_Impl& rCpy )
{
- aFmtIds.Insert( &rCpy.aFmtIds, 0 );
+ std::copy(rCpy.aFmtIds.begin(), rCpy.aFmtIds.end(), aFmtIds.begin());
for( sal_uInt16 n = 0, nEnd = rCpy.aFmtNms.Count(); n < nEnd; ++n )
{
String* pStr = rCpy.aFmtNms[ n ];
@@ -104,7 +105,7 @@ bool SvxClipboardFmtItem::PutValue( const ::com::sun::star::uno::Any& rVal, sal_
{
sal_uInt16 nCount = sal_uInt16( aClipFormats.Identifiers.getLength() );
- pImpl->aFmtIds.Remove( 0, pImpl->aFmtIds.Count() );
+ pImpl->aFmtIds.clear();
pImpl->aFmtNms.Remove( 0, pImpl->aFmtNms.Count() );
for ( sal_uInt16 n=0; n < nCount; n++ )
AddClipbrdFormat( sal_uIntPtr( aClipFormats.Identifiers[n] ), aClipFormats.Names[n], n
);
@@ -149,7 +150,7 @@ void SvxClipboardFmtItem::AddClipbrdFormat( sal_uIntPtr nId, sal_uInt16 nPos )
nPos = pImpl->aFmtNms.Count();
String* pStr = 0;
pImpl->aFmtNms.Insert( pStr, nPos );
- pImpl->aFmtIds.Insert( nId, nPos );
+ pImpl->aFmtIds.insert( pImpl->aFmtIds.begin()+nPos, nId );
}
void SvxClipboardFmtItem::AddClipbrdFormat( sal_uIntPtr nId, const String& rName,
@@ -159,12 +160,12 @@ void SvxClipboardFmtItem::AddClipbrdFormat( sal_uIntPtr nId, const String&
rName
nPos = pImpl->aFmtNms.Count();
String* pStr = new String( rName );
pImpl->aFmtNms.Insert( pStr, nPos );
- pImpl->aFmtIds.Insert( nId, nPos );
+ pImpl->aFmtIds.insert( pImpl->aFmtIds.begin()+nPos, nId );
}
sal_uInt16 SvxClipboardFmtItem::Count() const
{
- return pImpl->aFmtIds.Count();
+ return pImpl->aFmtIds.size();
}
sal_uIntPtr SvxClipboardFmtItem::GetClipbrdFormatId( sal_uInt16 nPos ) const
--
1.7.4.1
Context
- [Libreoffice] [PATCH] Replace-SvULongs-with-std-vector-in-sfx2 · Maciej Rumianowski
Privacy Policy |
Impressum (Legal Info) |
Copyright information: Unless otherwise specified, all text and images
on this website are licensed under the
Creative Commons Attribution-Share Alike 3.0 License.
This does not include the source code of LibreOffice, which is
licensed under the Mozilla Public License (
MPLv2).
"LibreOffice" and "The Document Foundation" are
registered trademarks of their corresponding registered owners or are
in actual use as trademarks in one or more countries. Their respective
logos and icons are also subject to international copyright laws. Use
thereof is explained in our
trademark policy.