svl/Package_inc.mk | 1 svl/inc/svl/cntnrsrt.hxx | 166 ------------------------ sw/source/filter/xml/xmltble.cxx | 33 ++-- xmloff/source/style/XMLFontAutoStylePool.cxx | 71 +++++----- xmloff/source/style/impastp1.cxx | 4 xmloff/source/style/impastp3.cxx | 20 -- xmloff/source/style/impastp4.cxx | 43 +++--- xmloff/source/style/impastpl.hxx | 16 +- xmloff/source/style/xmlstyle.cxx | 1 xmloff/source/text/XMLTextListAutoStylePool.cxx | 81 +++++------ 10 files changed, 128 insertions(+), 308 deletions(-)
New commits: commit ad99d4eeb60d4d18a93fcc78973b5f5dd20c0fbb Author: Michael Stahl <[email protected]> Date: Thu Aug 2 23:49:21 2012 +0200 SvXMLAutoStylePoolP_Impl: try to make MSVC happy Change-Id: Ifecfa196923b7fdde51839d74bef46e840bae501 diff --git a/xmloff/source/style/impastp4.cxx b/xmloff/source/style/impastp4.cxx index 3eecb55..194c516 100644 --- a/xmloff/source/style/impastp4.cxx +++ b/xmloff/source/style/impastp4.cxx @@ -263,12 +263,14 @@ OUString SvXMLAutoStylePoolP_Impl::Find( sal_Int32 nFamily, OUString sName; XMLFamilyData_Impl aTemporary( nFamily ); - XMLFamilyDataList_Impl::iterator aFind = maFamilyList.find(aTemporary); - DBG_ASSERT(aFind != maFamilyList.end(), "SvXMLAutoStylePool_Impl::Find: unknown family"); + XMLFamilyDataList_Impl::const_iterator const iter = + maFamilyList.find(aTemporary); + OSL_ENSURE(iter != maFamilyList.end(), + "SvXMLAutoStylePool_Impl::Find: unknown family"); - if (aFind != maFamilyList.end()) + if (iter != maFamilyList.end()) { - XMLFamilyData_Impl &rFamily = *aFind; + XMLFamilyData_Impl const& rFamily = *iter; const SvXMLAutoStylePoolParentsP_Impl* pParents = rFamily.mpParentList; commit e38940a137c5d3b474421ac0721a995dac46f8dd Author: Michael Stahl <[email protected]> Date: Thu Aug 2 23:37:16 2012 +0200 cntnrsrt.hxx: remove dead code Change-Id: I004101e814ac3eb1de7a518c2dd9b1f14683eca8 diff --git a/svl/Package_inc.mk b/svl/Package_inc.mk index ae63792..e518219 100644 --- a/svl/Package_inc.mk +++ b/svl/Package_inc.mk @@ -30,7 +30,6 @@ $(eval $(call gb_Package_add_file,svl_inc,inc/svl/broadcast.hxx,svl/broadcast.hx $(eval $(call gb_Package_add_file,svl_inc,inc/svl/cenumitm.hxx,svl/cenumitm.hxx)) $(eval $(call gb_Package_add_file,svl_inc,inc/svl/cintitem.hxx,svl/cintitem.hxx)) $(eval $(call gb_Package_add_file,svl_inc,inc/svl/cjkoptions.hxx,svl/cjkoptions.hxx)) -$(eval $(call gb_Package_add_file,svl_inc,inc/svl/cntnrsrt.hxx,svl/cntnrsrt.hxx)) $(eval $(call gb_Package_add_file,svl_inc,inc/svl/cntwall.hxx,svl/cntwall.hxx)) $(eval $(call gb_Package_add_file,svl_inc,inc/svl/cntwids.hrc,svl/cntwids.hrc)) $(eval $(call gb_Package_add_file,svl_inc,inc/svl/converter.hxx,svl/converter.hxx)) diff --git a/svl/inc/svl/cntnrsrt.hxx b/svl/inc/svl/cntnrsrt.hxx deleted file mode 100644 index c3d3856..0000000 --- a/svl/inc/svl/cntnrsrt.hxx +++ /dev/null @@ -1,166 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/* - * This file is part of the LibreOffice project. - * - * This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. - * - * This file incorporates work covered by the following license notice: - * - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed - * with this work for additional information regarding copyright - * ownership. The ASF licenses this file to you under the Apache - * License, Version 2.0 (the "License"); you may not use this file - * except in compliance with the License. You may obtain a copy of - * the License at http://www.apache.org/licenses/LICENSE-2.0 . - */ -#ifndef _CNTRSRT_HXX -#define _CNTRSRT_HXX - -/*********************************************************************** -* -* Hier folgt die Beschreibung fuer die exportierten Makros: -* -* DECLARE_CONTAINER_SORT( ClassName, Type ) -* IMPL_CONTAINER_SORT( ClassName, Type, SortFunc ) -* -* Definiert eine von Container abgeleitete Klasse "ClassName", -* in der die Elemente des Typs "Type" sortiert enthalten sind. -* Dazu muss einer Funktion "SortFunc" definiert sein, die als -* Paramter zwei "const Type&" erwartet und 0 zurueckgibt, wenn -* beide gleich sind, -1 wenn der erste Paramter kleiner ist als -* der zweite und +1 wenn der erste Paramter groesser ist als -* der zweite. -* -* Die Zugriffs-Methoden entsprechen in etwa denen der Container- -* Klasse, mit Ausnahme von Insert, DeleteAndDestroy und Seek_Entry, -* der den SV-Pointer-Arrays entsprechen. -* -* DECLARE_CONTAINER_SORT_DEL( ClassName, Type ) -* IMPL_CONTAINER_SORT( ClassName, Type, SortFunc ) -* -* Wie DECLARE_CONTAINER_SORT, nur dass beim Aufruf des Destruktors -* alle im Conatiner vorhandenen Objekte geloescht werden. -*/ - -#include <tools/contnr.hxx> - -#define DECLARE_CONTAINER_SORT_COMMON( ClassName, Type ) \ - ClassName( const ClassName& ); \ - ClassName& operator =( const ClassName& ); \ -public: \ - using Container::Count; \ - \ - ClassName( sal_uInt16 InitSize, sal_uInt16 ReSize ) : \ - Container( CONTAINER_MAXBLOCKSIZE, InitSize, ReSize ) {} \ - \ - sal_Bool Insert( Type* pObj ); \ - \ - Type *Remove( sal_uLong nPos ) \ - { return (Type *)Container::Remove( nPos ); } \ - \ - Type *Remove( Type* pObj ); \ - \ - void DeleteAndDestroy( sal_uLong nPos ) \ - { \ - Type *pObj = Remove( nPos ); \ - if( pObj ) \ - delete pObj; \ - } \ - \ - void DeleteAndDestroy() \ - { while( Count() ) DeleteAndDestroy( 0 ); } \ - \ - Type* GetObject( sal_uLong nPos ) const \ - { return (Type *)Container::GetObject( nPos ); } \ - \ - Type* operator[]( sal_uLong nPos ) const \ - { return GetObject(nPos); } \ - \ - sal_Bool Seek_Entry( const Type *pObj, sal_uLong* pPos ) const; \ - \ - sal_uLong GetPos( const Type* pObj ) const; \ - - -#define DECLARE_CONTAINER_SORT( ClassName, Type ) \ -class ClassName : private Container \ -{ \ - DECLARE_CONTAINER_SORT_COMMON( ClassName, Type ) \ - ~ClassName() {} \ -}; \ - - -#define DECLARE_CONTAINER_SORT_DEL( ClassName, Type ) \ -class ClassName : private Container \ -{ \ - DECLARE_CONTAINER_SORT_COMMON( ClassName, Type ) \ - ~ClassName() { DeleteAndDestroy(); } \ -}; \ - - -#define IMPL_CONTAINER_SORT( ClassName, Type, SortFunc ) \ -sal_Bool ClassName::Insert( Type *pObj ) \ -{ \ - sal_uLong nPos; \ - sal_Bool bExist = Seek_Entry( pObj, &nPos ); \ - if( !bExist ) \ - Container::Insert( pObj, nPos ); \ - return !bExist; \ -} \ - \ -Type *ClassName::Remove( Type* pObj ) \ -{ \ - sal_uLong nPos; \ - if( Seek_Entry( pObj, &nPos ) ) \ - return Remove( nPos ); \ - else \ - return 0; \ -} \ - \ -sal_uLong ClassName::GetPos( const Type* pObj ) const \ -{ \ - sal_uLong nPos; \ - if( Seek_Entry( pObj, &nPos ) ) \ - return nPos; \ - else \ - return CONTAINER_ENTRY_NOTFOUND; \ -} \ - \ -sal_Bool ClassName::Seek_Entry( const Type* pObj, sal_uLong* pPos ) const \ -{ \ - register sal_uLong nO = Count(), \ - nM, \ - nU = 0; \ - if( nO > 0 ) \ - { \ - nO--; \ - while( nU <= nO ) \ - { \ - nM = nU + ( nO - nU ) / 2; \ - int nCmp = SortFunc( *GetObject(nM), *pObj ); \ - \ - if( 0 == nCmp ) \ - { \ - if( pPos ) *pPos = nM; \ - return sal_True; \ - } \ - else if( nCmp < 0 ) \ - nU = nM + 1; \ - else if( nM == 0 ) \ - { \ - if( pPos ) *pPos = nU; \ - return sal_False; \ - } \ - else \ - nO = nM - 1; \ - } \ - } \ - if( pPos ) *pPos = nU; \ - return sal_False; \ -} \ - -#endif - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/sw/source/filter/xml/xmltble.cxx b/sw/source/filter/xml/xmltble.cxx index eb3c518..4acd7eb 100644 --- a/sw/source/filter/xml/xmltble.cxx +++ b/sw/source/filter/xml/xmltble.cxx @@ -36,7 +36,6 @@ #include <xmloff/xmltoken.hxx> #include <xmloff/xmluconv.hxx> #include <xmloff/numehelp.hxx> -#include <svl/cntnrsrt.hxx> #include <svl/zforlist.hxx> #include <editeng/brshitem.hxx> #include <editeng/boxitem.hxx> diff --git a/xmloff/source/style/xmlstyle.cxx b/xmloff/source/style/xmlstyle.cxx index 380dd48..aabfdc4 100644 --- a/xmloff/source/style/xmlstyle.cxx +++ b/xmloff/source/style/xmlstyle.cxx @@ -39,7 +39,6 @@ #include <com/sun/star/style/XAutoStyleFamily.hpp> #include "PageMasterPropMapper.hxx" #include <tools/debug.hxx> -#include <svl/cntnrsrt.hxx> #include <svl/itemset.hxx> #include <xmloff/nmspmap.hxx> #include "xmloff/xmlnmspe.hxx" commit d81c7f47c98d88dc30822dd9e0550461afe77dbf Author: Noel Grandin <[email protected]> Date: Thu Aug 2 14:42:48 2012 +0200 STL'ify DECLARE_CONTAINER_SORT_DEL(SvXMLAutoStylePoolParentsP_Impl) Change-Id: I54f1595198b65058d3dd7f3304e0acb75cd55291 diff --git a/xmloff/source/style/impastp1.cxx b/xmloff/source/style/impastp1.cxx index b1a0bd6..ca70002 100644 --- a/xmloff/source/style/impastp1.cxx +++ b/xmloff/source/style/impastp1.cxx @@ -51,7 +51,7 @@ XMLFamilyData_Impl::XMLFamilyData_Impl( mnCount( 0 ), mnName( 0 ), maStrPrefix( rStrPrefix ), bAsFamily( bAsFam ) { - mpParentList = new SvXMLAutoStylePoolParentsP_Impl( 5, 5 ); + mpParentList = new SvXMLAutoStylePoolParentsP_Impl; mpNameList = new SvXMLAutoStylePoolNamesP_Impl; } @@ -72,7 +72,7 @@ XMLFamilyData_Impl::~XMLFamilyData_Impl() void XMLFamilyData_Impl::ClearEntries() { delete mpParentList; - mpParentList = new SvXMLAutoStylePoolParentsP_Impl( 5, 5 ); + mpParentList = new SvXMLAutoStylePoolParentsP_Impl; DBG_ASSERT( !pCache || !pCache->size(), "auto style pool cache is not empty!" ); if( pCache ) { diff --git a/xmloff/source/style/impastp3.cxx b/xmloff/source/style/impastp3.cxx index eceed9e..d89dc48 100644 --- a/xmloff/source/style/impastp3.cxx +++ b/xmloff/source/style/impastp3.cxx @@ -169,24 +169,4 @@ OUString SvXMLAutoStylePoolParentP_Impl::Find( const XMLFamilyData_Impl& rFamily return sName; } -/////////////////////////////////////////////////////////////////////////////// -// -// Sort-function for sorted list of SvXMLAutoStylePoolParent_Impl-elements -// - -int SvXMLAutoStylePoolParentPCmp_Impl( const SvXMLAutoStylePoolParentP_Impl& r1, - const SvXMLAutoStylePoolParentP_Impl& r2) -{ - return (int)r1.GetParent().compareTo( r2.GetParent() ); -} - -/////////////////////////////////////////////////////////////////////////////// -// -// Implementation of sorted list of SvXMLAutoStylePoolParent_Impl-elements -// - -IMPL_CONTAINER_SORT( SvXMLAutoStylePoolParentsP_Impl, - SvXMLAutoStylePoolParentP_Impl, - SvXMLAutoStylePoolParentPCmp_Impl ) - /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/xmloff/source/style/impastp4.cxx b/xmloff/source/style/impastp4.cxx index 02b380f..3eecb55 100644 --- a/xmloff/source/style/impastp4.cxx +++ b/xmloff/source/style/impastp4.cxx @@ -181,15 +181,16 @@ sal_Bool SvXMLAutoStylePoolP_Impl::Add(OUString& rName, sal_Int32 nFamily, SvXMLAutoStylePoolParentP_Impl *pParent = 0; SvXMLAutoStylePoolParentsP_Impl *pParents = rFamily.mpParentList; - sal_uLong nPos; - if( pParents->Seek_Entry( &aTmp, &nPos ) ) + SvXMLAutoStylePoolParentsP_Impl::const_iterator const it2 = + pParents->find(&aTmp); + if (it2 != pParents->end()) { - pParent = pParents->GetObject( nPos ); + pParent = *it2; } else { pParent = new SvXMLAutoStylePoolParentP_Impl( rParent ); - pParents->Insert( pParent ); + pParents->insert( pParent ); } if( pParent->Add( rFamily, rProperties, rName, bDontSeek ) ) @@ -228,15 +229,16 @@ sal_Bool SvXMLAutoStylePoolP_Impl::AddNamed(const OUString& rName, sal_Int32 nFa SvXMLAutoStylePoolParentP_Impl *pParent = 0; SvXMLAutoStylePoolParentsP_Impl *pParents = rFamily.mpParentList; - sal_uLong nPos; - if( pParents->Seek_Entry( &aTmp, &nPos ) ) + SvXMLAutoStylePoolParentsP_Impl::const_iterator const it2 = + pParents->find(&aTmp); + if (it2 != pParents->end()) { - pParent = pParents->GetObject( nPos ); + pParent = *it2; } else { pParent = new SvXMLAutoStylePoolParentP_Impl( rParent ); - pParents->Insert( pParent ); + pParents->insert( pParent ); } if( pParent->AddNamed( rFamily, rProperties, rName ) ) @@ -271,9 +273,12 @@ OUString SvXMLAutoStylePoolP_Impl::Find( sal_Int32 nFamily, rFamily.mpParentList; SvXMLAutoStylePoolParentP_Impl aTmp( rParent ); - sal_uLong nPos; - if( pParents->Seek_Entry( &aTmp, &nPos ) ) - sName = pParents->GetObject( nPos )->Find( rFamily, rProperties ); + SvXMLAutoStylePoolParentsP_Impl::const_iterator const it2 = + pParents->find(&aTmp); + if (it2 != pParents->end()) + { + sName = (*it2)->Find( rFamily, rProperties ); + } } return sName; @@ -322,11 +327,9 @@ void SvXMLAutoStylePoolP_Impl::exportXML( aExpStyles[i].mpProperties = 0; } - sal_uInt32 nParents = pParents->Count(); - for( i=0; i < nParents; i++ ) + for (size_t k = 0; k < pParents->size(); k++) { - const SvXMLAutoStylePoolParentP_Impl* pParent = - pParents->GetObject( i ); + const SvXMLAutoStylePoolParentP_Impl *const pParent = (*pParents)[k]; size_t nProperties = pParent->GetPropertiesList().size(); for( size_t j = 0; j < nProperties; j++ ) { diff --git a/xmloff/source/style/impastpl.hxx b/xmloff/source/style/impastpl.hxx index 941471d..2056740 100644 --- a/xmloff/source/style/impastpl.hxx +++ b/xmloff/source/style/impastpl.hxx @@ -31,13 +31,13 @@ #include <boost/ptr_container/ptr_set.hpp> #include <sal/types.h> -#include <svl/cntnrsrt.hxx> #include <rtl/ustring.hxx> #include <set> #include <vector> #include <com/sun/star/uno/Reference.h> #include <com/sun/star/xml/sax/XAttributeList.hpp> #include <com/sun/star/xml/sax/XDocumentHandler.hpp> +#include <o3tl/sorted_vector.hxx> #include <xmloff/maptype.hxx> #include <xmloff/xmlexppr.hxx> @@ -154,8 +154,18 @@ public: } }; -DECLARE_CONTAINER_SORT_DEL( SvXMLAutoStylePoolParentsP_Impl, - SvXMLAutoStylePoolParentP_Impl ) +struct SvXMLAutoStylePoolParentPCmp_Impl +{ + bool operator()( SvXMLAutoStylePoolParentP_Impl* const& lhs, SvXMLAutoStylePoolParentP_Impl* const& rhs) const + { + return lhs->GetParent().compareTo( rhs->GetParent() ) < 0; + } +}; +class SvXMLAutoStylePoolParentsP_Impl : public o3tl::sorted_vector<SvXMLAutoStylePoolParentP_Impl*, SvXMLAutoStylePoolParentPCmp_Impl> +{ +public: + ~SvXMLAutoStylePoolParentsP_Impl() { DeleteAndDestroyAll(); } +}; /////////////////////////////////////////////////////////////////////////////// // commit efe1a44e473497be1be99c10dcefbc77f36041e3 Author: Noel Grandin <[email protected]> Date: Thu Aug 2 16:23:40 2012 +0200 STL'ify DECLARE_CONTAINER_SORT(XMLTextListAutoStylePool_Impl) Change-Id: Ib9aa0e619434acde5b4dd93b43b231ba23adb63e diff --git a/xmloff/source/text/XMLTextListAutoStylePool.cxx b/xmloff/source/text/XMLTextListAutoStylePool.cxx index acf9044..443265f 100644 --- a/xmloff/source/text/XMLTextListAutoStylePool.cxx +++ b/xmloff/source/text/XMLTextListAutoStylePool.cxx @@ -27,7 +27,7 @@ ************************************************************************/ #include <tools/debug.hxx> -#include <svl/cntnrsrt.hxx> +#include <o3tl/sorted_vector.hxx> #include <com/sun/star/ucb/XAnyCompareFactory.hpp> #include <com/sun/star/container/XNamed.hpp> #include <com/sun/star/container/XIndexReplace.hpp> @@ -123,40 +123,34 @@ XMLTextListAutoStylePoolEntry_Impl::XMLTextListAutoStylePoolEntry_Impl( while (rNames.find(sName) != rNames.end()); } -int XMLTextListAutoStylePoolEntryCmp_Impl( - const XMLTextListAutoStylePoolEntry_Impl& r1, - const XMLTextListAutoStylePoolEntry_Impl& r2 ) +struct XMLTextListAutoStylePoolEntryCmp_Impl { - int nRet; - if( r1.IsNamed() ) + bool operator()( + XMLTextListAutoStylePoolEntry_Impl* const& r1, + XMLTextListAutoStylePoolEntry_Impl* const& r2 ) const { - if( r2.IsNamed() ) - nRet = (int)r1.GetInternalName().compareTo( r2.GetInternalName()); - else - nRet = -1; - } - else - { - if( r2.IsNamed() ) - nRet = 1; + if( r1->IsNamed() ) + { + if( r2->IsNamed() ) + return r1->GetInternalName().compareTo( r2->GetInternalName() ) < 0; + else + return true; + } else - nRet = (int)(r1.GetNumRules().get() - r2.GetNumRules().get()); + { + if( r2->IsNamed() ) + return false; + else + return r1->GetNumRules().get() < r2->GetNumRules().get(); + } } - - return nRet; -} - -typedef XMLTextListAutoStylePoolEntry_Impl *XMLTextListAutoStylePoolEntryPtr; -DECLARE_CONTAINER_SORT( XMLTextListAutoStylePool_Impl, - XMLTextListAutoStylePoolEntry_Impl ) -IMPL_CONTAINER_SORT( XMLTextListAutoStylePool_Impl, - XMLTextListAutoStylePoolEntry_Impl, - XMLTextListAutoStylePoolEntryCmp_Impl ) +}; +class XMLTextListAutoStylePool_Impl : public o3tl::sorted_vector<XMLTextListAutoStylePoolEntry_Impl*, XMLTextListAutoStylePoolEntryCmp_Impl> {}; XMLTextListAutoStylePool::XMLTextListAutoStylePool( SvXMLExport& rExp ) : rExport( rExp ), sPrefix( RTL_CONSTASCII_USTRINGPARAM("L") ), - pPool( new XMLTextListAutoStylePool_Impl( 5, 5 ) ), + pPool( new XMLTextListAutoStylePool_Impl ), nName( 0 ) { Reference<ucb::XAnyCompareFactory> xCompareFac( rExp.GetModel(), uno::UNO_QUERY ); @@ -172,9 +166,7 @@ XMLTextListAutoStylePool::XMLTextListAutoStylePool( SvXMLExport& rExp ) : XMLTextListAutoStylePool::~XMLTextListAutoStylePool() { // The XMLTextListAutoStylePoolEntry_Impl object in the pool need delete explicitly in dtor. - sal_uLong nCount = pPool->Count(); - while ( nCount-- ) - delete pPool->Remove(nCount); + pPool->DeleteAndDestroyAll(); delete pPool; } @@ -185,25 +177,26 @@ void XMLTextListAutoStylePool::RegisterName( const OUString& rName ) sal_uInt32 XMLTextListAutoStylePool::Find( XMLTextListAutoStylePoolEntry_Impl* pEntry ) const { - sal_uLong nPos; if( !pEntry->IsNamed() && mxNumRuleCompare.is() ) { - const sal_uInt32 nCount = pPool->Count(); + const sal_uInt32 nCount = pPool->size(); uno::Any aAny1, aAny2; aAny1 <<= pEntry->GetNumRules(); - for( nPos = 0; nPos < nCount; nPos++ ) + for( sal_uLong nPos = 0; nPos < nCount; nPos++ ) { - aAny2 <<= pPool->GetObject(nPos)->GetNumRules(); + aAny2 <<= (*pPool)[nPos]->GetNumRules(); if( mxNumRuleCompare->compare( aAny1, aAny2 ) == 0 ) return nPos; } } - else if( pPool->Seek_Entry( pEntry, &nPos ) ) + else { - return nPos; + XMLTextListAutoStylePool_Impl::const_iterator it = pPool->find( pEntry ); + if( it != pPool->end() ) + return it - pPool->begin(); } return (sal_uInt32)-1; @@ -218,15 +211,15 @@ OUString XMLTextListAutoStylePool::Add( sal_uInt32 nPos = Find( &aTmp ); if( nPos != (sal_uInt32)-1 ) { - sName = pPool->GetObject( nPos )->GetName(); + sName = (*pPool)[ nPos ]->GetName(); } else { XMLTextListAutoStylePoolEntry_Impl *pEntry = - new XMLTextListAutoStylePoolEntry_Impl( pPool->Count(), + new XMLTextListAutoStylePoolEntry_Impl( pPool->size(), rNumRules, m_aNames, sPrefix, nName ); - pPool->Insert( pEntry ); + pPool->insert( pEntry ); sName = pEntry->GetName(); } @@ -241,7 +234,7 @@ OUString XMLTextListAutoStylePool::Add( sal_uInt32 nPos = Find( &aTmp ); if( nPos != (sal_uInt32)-1 ) - sName = pPool->GetObject( nPos )->GetName(); + sName = (*pPool)[ nPos ]->GetName(); return sName; } @@ -253,19 +246,19 @@ OUString XMLTextListAutoStylePool::Add( XMLTextListAutoStylePoolEntry_Impl aTmp( rInternalName ); sal_uInt32 nPos = Find( &aTmp ); if( nPos != (sal_uInt32)-1 ) - sName = pPool->GetObject( nPos )->GetName(); + sName = (*pPool)[ nPos ]->GetName(); return sName; } void XMLTextListAutoStylePool::exportXML() const { - sal_uInt32 nCount = pPool->Count(); + sal_uInt32 nCount = pPool->size(); if( !nCount ) return; XMLTextListAutoStylePoolEntry_Impl **aExpEntries = - new XMLTextListAutoStylePoolEntryPtr[nCount]; + new XMLTextListAutoStylePoolEntry_Impl*[nCount]; sal_uInt32 i; for( i=0; i < nCount; i++ ) @@ -274,7 +267,7 @@ void XMLTextListAutoStylePool::exportXML() const } for( i=0; i < nCount; i++ ) { - XMLTextListAutoStylePoolEntry_Impl *pEntry = pPool->GetObject(i); + XMLTextListAutoStylePoolEntry_Impl *pEntry = (*pPool)[i]; DBG_ASSERT( pEntry->GetPos() < nCount, "Illegal pos" ); aExpEntries[pEntry->GetPos()] = pEntry; } commit 0df18265ef1c36c52a1954cda0f4726421cbd5a2 Author: Noel Grandin <[email protected]> Date: Thu Aug 2 14:54:13 2012 +0200 STL'ify DECLARE_CONTAINER_SORT_DEL(XMLFontAutoStylePool_Impl) Change-Id: Ic02f143a0e0f01a6cbc88c47d20e0c27dca17a74 diff --git a/xmloff/source/style/XMLFontAutoStylePool.cxx b/xmloff/source/style/XMLFontAutoStylePool.cxx index f6bada3..ce61666 100644 --- a/xmloff/source/style/XMLFontAutoStylePool.cxx +++ b/xmloff/source/style/XMLFontAutoStylePool.cxx @@ -26,7 +26,7 @@ * ************************************************************************/ -#include <svl/cntnrsrt.hxx> +#include <o3tl/sorted_vector.hxx> #include <tools/fontenum.hxx> #include "xmloff/xmlnmspe.hxx" #include <xmloff/xmltoken.hxx> @@ -106,37 +106,40 @@ inline XMLFontAutoStylePoolEntry_Impl::XMLFontAutoStylePoolEntry_Impl( eEnc( eE ) { } -int XMLFontAutoStylePoolEntryCmp_Impl( - const XMLFontAutoStylePoolEntry_Impl& r1, - const XMLFontAutoStylePoolEntry_Impl& r2 ) -{ - sal_Int8 nEnc1(r1.GetEncoding() != RTL_TEXTENCODING_SYMBOL); - sal_Int8 nEnc2(r2.GetEncoding() != RTL_TEXTENCODING_SYMBOL); - if( nEnc1 != nEnc2 ) - return nEnc1 - nEnc2; - else if( r1.GetPitch() != r2.GetPitch() ) - return (int)r1.GetPitch() - (int)r2.GetPitch(); - else if( r1.GetFamily() != r2.GetFamily() ) - return (int)r1.GetFamily() - (int)r2.GetFamily(); - else + +struct XMLFontAutoStylePoolEntryCmp_Impl { + bool operator()( + XMLFontAutoStylePoolEntry_Impl* const& r1, + XMLFontAutoStylePoolEntry_Impl* const& r2 ) const { - sal_Int32 nCmp = r1.GetFamilyName().compareTo( r2.GetFamilyName() ); - if( 0 == nCmp ) - return (int)r1.GetStyleName().compareTo( r2.GetStyleName() ); + sal_Int8 nEnc1(r1->GetEncoding() != RTL_TEXTENCODING_SYMBOL); + sal_Int8 nEnc2(r2->GetEncoding() != RTL_TEXTENCODING_SYMBOL); + if( nEnc1 != nEnc2 ) + return nEnc1 < nEnc2; + else if( r1->GetPitch() != r2->GetPitch() ) + return r1->GetPitch() < r2->GetPitch(); + else if( r1->GetFamily() != r2->GetFamily() ) + return r1->GetFamily() < r2->GetFamily(); else - return (int)nCmp; + { + sal_Int32 nCmp = r1->GetFamilyName().compareTo( r2->GetFamilyName() ); + if( 0 == nCmp ) + return r1->GetStyleName().compareTo( r2->GetStyleName() ) < 0; + else + return nCmp < 0; + } } -} +}; -DECLARE_CONTAINER_SORT_DEL( XMLFontAutoStylePool_Impl, - XMLFontAutoStylePoolEntry_Impl ) -IMPL_CONTAINER_SORT( XMLFontAutoStylePool_Impl, - XMLFontAutoStylePoolEntry_Impl, - XMLFontAutoStylePoolEntryCmp_Impl ) +class XMLFontAutoStylePool_Impl : public o3tl::sorted_vector<XMLFontAutoStylePoolEntry_Impl*, XMLFontAutoStylePoolEntryCmp_Impl> +{ +public: + ~XMLFontAutoStylePool_Impl() { DeleteAndDestroyAll(); } +}; XMLFontAutoStylePool::XMLFontAutoStylePool( SvXMLExport& rExp ) : rExport( rExp ), - pPool( new XMLFontAutoStylePool_Impl( 5, 5 ) ) + pPool( new XMLFontAutoStylePool_Impl ) { } @@ -155,10 +158,10 @@ OUString XMLFontAutoStylePool::Add( OUString sPoolName; XMLFontAutoStylePoolEntry_Impl aTmp( rFamilyName, rStyleName, nFamily, nPitch, eEnc ); - sal_uLong nPos; - if( pPool->Seek_Entry( &aTmp, &nPos ) ) + XMLFontAutoStylePool_Impl::const_iterator it = pPool->find( &aTmp ); + if( it != pPool->end() ) { - sPoolName = pPool->GetObject( nPos )->GetName(); + sPoolName = (*it)->GetName(); } else { @@ -192,7 +195,7 @@ OUString XMLFontAutoStylePool::Add( XMLFontAutoStylePoolEntry_Impl *pEntry = new XMLFontAutoStylePoolEntry_Impl( sName, rFamilyName, rStyleName, nFamily, nPitch, eEnc ); - pPool->Insert( pEntry ); + pPool->insert( pEntry ); m_aNames.insert(sName); } @@ -209,10 +212,10 @@ OUString XMLFontAutoStylePool::Add( OUString sName; XMLFontAutoStylePoolEntry_Impl aTmp( rFamilyName, rStyleName, nFamily, nPitch, eEnc ); - sal_uLong nPos; - if( pPool->Seek_Entry( &aTmp, &nPos ) ) + XMLFontAutoStylePool_Impl::const_iterator it = pPool->find( &aTmp ); + if( it != pPool->end() ) { - sName = pPool->GetObject( nPos )->GetName(); + sName = (*it)->GetName(); } return sName; @@ -232,10 +235,10 @@ void XMLFontAutoStylePool::exportXML() XMLFontEncodingPropHdl aEncHdl; const SvXMLUnitConverter& rUnitConv = GetExport().GetMM100UnitConverter(); - sal_uInt32 nCount = pPool->Count(); + sal_uInt32 nCount = pPool->size(); for( sal_uInt32 i=0; i<nCount; i++ ) { - const XMLFontAutoStylePoolEntry_Impl *pEntry = pPool->GetObject( i ); + const XMLFontAutoStylePoolEntry_Impl *pEntry = (*pPool)[ i ]; GetExport().AddAttribute( XML_NAMESPACE_STYLE, XML_NAME, pEntry->GetName() ); commit d0f5ff78740df2540873c4091786672b63063491 Author: Noel Grandin <[email protected]> Date: Thu Aug 2 13:32:13 2012 +0200 STL'ify DECLARE_CONTAINER_SORT(SwXMLTableColumnsSortByWidth_Impl) Change-Id: Icd480f74dacb41d869fb511a0d2630d8b3711343 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 ); _______________________________________________ Libreoffice-commits mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
