[PATCH] Use STL find() in SvxNumberFormatShell

Maciej Rumianowski maciej.rumianowski at gmail.com
Mon Aug 8 16:15:16 PDT 2011


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


--=-GeAhzVqrjwHYAasKyYfn--



More information about the LibreOffice mailing list