summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTakeshi Abe <tabe@fixedpoint.jp>2014-09-29 23:33:31 +0900
committerMichael Stahl <mstahl@redhat.com>2014-10-01 20:04:44 +0000
commitaf046d12d27bc4f87a3c0142dba749d21c8eec7d (patch)
treeabb31a06099dbda0037388e7e35860d3bb97c1d1
parent8eae6dc82e85ede74a0676759f698bea79fb7fd9 (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>
-rw-r--r--sfx2/source/control/shell.cxx23
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 );
}
}