Hi,
My patch got lost on mailing list, so I am attaching it now against
actual master.
Discussion was here
http://lists.freedesktop.org/archives/libreoffice/2011-August/016218.html
Best Regards,
Maciej
From 63ca5f6af27123f821446e39eaa4b152652eec7f Mon Sep 17 00:00:00 2001
From: Maciej Rumianowski <maciej.rumianowski@gmail.com>
Date: Tue, 9 Aug 2011 01:15:16 +0200
Subject: [PATCH] Use STL find() in SvxNumberFormatShell
With SvULongs replaced by std::vector std::find can be used in IsRemoved_Impl IsAdded_Impl
---
svx/inc/svx/numfmtsh.hxx | 9 ++++--
svx/source/items/numfmtsh.cxx | 63 +++++++++++++++--------------------------
2 files changed, 29 insertions(+), 43 deletions(-)
diff --git a/svx/inc/svx/numfmtsh.hxx b/svx/inc/svx/numfmtsh.hxx
index 5217e29..c29f71d 100644
--- a/svx/inc/svx/numfmtsh.hxx
+++ b/svx/inc/svx/numfmtsh.hxx
@@ -256,9 +256,12 @@ private:
SVX_DLLPRIVATE short FillEListWithSysCurrencys( SvStrings& rList,short nSelPos);
SVX_DLLPRIVATE short FillEListWithUserCurrencys( SvStrings& rList,short
nSelPos);
- SVX_DLLPRIVATE short FillEListWithUsD_Impl( SvStrings& rList, sal_uInt16
nPrivCat, short Pos );
- SVX_DLLPRIVATE bool IsRemoved_Impl( sal_uInt32 nKey );
- SVX_DLLPRIVATE bool IsAdded_Impl( sal_uInt32 nKey );
+ SVX_DLLPRIVATE short FillEListWithUsD_Impl( SvStrings& rList,
sal_uInt16 nPrivCat, short Pos );
+ SVX_DLLPRIVATE ::std::vector<sal_uInt32>::iterator GetRemoved_Impl( size_t nKey );
+ SVX_DLLPRIVATE bool IsRemoved_Impl( size_t nKey );
+ SVX_DLLPRIVATE ::std::vector<sal_uInt32>::iterator GetAdded_Impl( size_t nKey );
+ SVX_DLLPRIVATE bool IsAdded_Impl( size_t nKey );
+
SVX_DLLPRIVATE void GetPreviewString_Impl( String& rString,
Color*& rpColor );
SVX_DLLPRIVATE void PosToCategory_Impl( sal_uInt16 nPos, short& rCategory );
diff --git a/svx/source/items/numfmtsh.cxx b/svx/source/items/numfmtsh.cxx
index b06042b..c759768 100644
--- a/svx/source/items/numfmtsh.cxx
+++ b/svx/source/items/numfmtsh.cxx
@@ -255,20 +255,9 @@ bool SvxNumberFormatShell::AddFormat( String& rFormat, xub_StrLen& rErrPos,
if ( nAddKey != NUMBERFORMAT_ENTRY_NOT_FOUND ) // bereits vorhanden?
{
- if ( IsRemoved_Impl( nAddKey ) )
+ ::std::vector<sal_uInt32>::iterator nAt = GetRemoved_Impl( nAddKey );
+ if ( nAt != aDelList.end() )
{
- bool bFound = false;
- std::vector<sal_uInt32>::iterator nAt = aDelList.begin();
-
- for (std::vector<sal_uInt32>::iterator it(aDelList.begin()); !bFound && it !=
aDelList.end(); ++it )
- {
- if ( *it == nAddKey )
- {
- bFound = true;
- nAt = it;
- }
- }
- DBG_ASSERT( bFound, "Key not found" );
aDelList.erase( nAt );
bInserted = true;
}
@@ -340,22 +329,10 @@ bool SvxNumberFormatShell::RemoveFormat( const String& rFormat,
{
aDelList.push_back( nDelKey );
- if ( IsAdded_Impl( nDelKey ) )
+ ::std::vector<sal_uInt32>::iterator nAt = GetAdded_Impl( nDelKey );
+ if( nAt != aAddList.end() )
{
- bool bFound = false;
- std::vector<sal_uInt32>::iterator nAt = aAddList.begin();
-
- for ( std::vector<sal_uInt32>::iterator it(aAddList.begin()); !bFound && it !=
aAddList.end(); ++it )
- {
- if ( *it == nDelKey )
- {
- bFound = true;
- nAt = it;
- }
- }
- DBG_ASSERT( bFound, "Key not found" );
- if( bFound )
- aAddList.erase( nAt );
+ aAddList.erase( nAt );
}
nCurCategory=pFormatter->GetType(nDelKey);
@@ -1178,24 +1155,30 @@ void SvxNumberFormatShell::GetPreviewString_Impl( String& rString, Color*&
rpCol
// -----------------------------------------------------------------------
-bool SvxNumberFormatShell::IsRemoved_Impl( sal_uInt32 nKey )
+::std::vector<sal_uInt32>::iterator SvxNumberFormatShell::GetRemoved_Impl( size_t nKey )
{
- bool bFound = false;
- for (std::vector<sal_uInt32>::const_iterator it(aDelList.begin()); !bFound && it !=
aDelList.end(); ++it )
- if ( *it == nKey )
- bFound = true;
- return bFound;
+ return ::std::find(aDelList.begin(), aDelList.end(), nKey);
}
// -----------------------------------------------------------------------
-bool SvxNumberFormatShell::IsAdded_Impl( sal_uInt32 nKey )
+bool SvxNumberFormatShell::IsRemoved_Impl( size_t nKey )
+{
+ return GetRemoved_Impl( nKey ) != aDelList.end();
+}
+
+// -----------------------------------------------------------------------
+
+::std::vector<sal_uInt32>::iterator SvxNumberFormatShell::GetAdded_Impl( size_t nKey )
+{
+ return ::std::find(aAddList.begin(), aAddList.end(), nKey);
+}
+
+//------------------------------------------------------------------------
+
+bool SvxNumberFormatShell::IsAdded_Impl( size_t nKey )
{
- bool bFound = false;
- for ( std::vector<sal_uInt32>::const_iterator it(aAddList.begin()); !bFound && it !=
aAddList.end(); ++it )
- if ( *it == nKey )
- bFound = true;
- return bFound;
+ return GetAdded_Impl( nKey ) != aAddList.end();
}
// -----------------------------------------------------------------------
--
1.7.4.1
Context
- [Libreoffice] [PATCH] Use STL find in SvxNumberFormatShell · 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.