diff options
author | Takeshi Abe <tabe@fixedpoint.jp> | 2014-09-29 23:33:31 +0900 |
---|---|---|
committer | Michael Stahl <mstahl@redhat.com> | 2014-10-01 20:04:44 +0000 |
commit | af046d12d27bc4f87a3c0142dba749d21c8eec7d (patch) | |
tree | abb31a06099dbda0037388e7e35860d3bb97c1d1 /sfx2 | |
parent | 8eae6dc82e85ede74a0676759f698bea79fb7fd9 (diff) |
fdo#75757: remove inheritance to std::map
from SfxItemPtrMap.
Change-Id: Id7e9667f9b918afaf92d9e71bf0e2c2e9c296474
Reviewed-on: https://gerrit.libreoffice.org/11696
Reviewed-by: Michael Stahl <mstahl@redhat.com>
Tested-by: Michael Stahl <mstahl@redhat.com>
Diffstat (limited to 'sfx2')
-rw-r--r-- | sfx2/source/control/shell.cxx | 23 |
1 files changed, 7 insertions, 16 deletions
diff --git a/sfx2/source/control/shell.cxx b/sfx2/source/control/shell.cxx index 29b2d1a3ee86..9ad1b8ada695 100644 --- a/sfx2/source/control/shell.cxx +++ b/sfx2/source/control/shell.cxx @@ -44,19 +44,11 @@ #include <sfx2/msgpool.hxx> #include <sidebar/ContextChangeBroadcaster.hxx> -#include <map> +#include <boost/ptr_container/ptr_map.hpp> #include <boost/ptr_container/ptr_vector.hpp> // Maps the Which() field to a pointer to a SfxPoolItem -class SfxItemPtrMap : public std::map<sal_uInt16, SfxPoolItem*> -{ -public: - ~SfxItemPtrMap() - { - for(iterator it = begin(); it != end(); ++it) - delete it->second; - } -}; +typedef boost::ptr_map<sal_uInt16, SfxPoolItem> SfxItemPtrMap; TYPEINIT0(SfxShell); @@ -164,7 +156,7 @@ const SfxPoolItem* SfxShell::GetItem sal_uInt16 nSlotId // Slot-Id of the querying <SfxPoolItem>s ) const { - SfxItemPtrMap::iterator it = pImp->aItems.find( nSlotId ); + SfxItemPtrMap::const_iterator it = pImp->aItems.find( nSlotId ); if( it != pImp->aItems.end() ) return it->second; return 0; @@ -183,15 +175,14 @@ void SfxShell::PutItem // MSC made a mess here of WNT/W95, beware of changes SfxPoolItem *pItem = rItem.Clone(); SfxPoolItemHint aItemHint( pItem ); - const sal_uInt16 nWhich = rItem.Which(); + sal_uInt16 nWhich = rItem.Which(); SfxItemPtrMap::iterator it = pImp->aItems.find( nWhich ); if( it != pImp->aItems.end() ) { - SfxPoolItem *pLoopItem = it->second; // Replace Item - delete pLoopItem; - it->second = pItem; + pImp->aItems.erase( it ); + pImp->aItems.insert( nWhich, pItem ); // if active, notify Bindings SfxDispatcher *pDispat = GetDispatcher(); @@ -212,7 +203,7 @@ void SfxShell::PutItem else { Broadcast( aItemHint ); - pImp->aItems[ pItem->Which() ] = pItem; + pImp->aItems.insert( nWhich, pItem ); } } |