summaryrefslogtreecommitdiff
path: root/basic
diff options
context:
space:
mode:
authorMichael Meeks <michael.meeks@novell.com>2011-07-25 18:08:29 +0100
committerCaolán McNamara <caolanm@redhat.com>2011-11-21 10:26:49 +0000
commit738622d199a64327048d6a40953499b9dca5c008 (patch)
tree8da1bc348658d0874e3961e3d6d47d7e58fe72bf /basic
parent443e1b1566d678c79658f2a48aa4b088ed914fa3 (diff)
fdo#39520 - turn DocBasicItems into an rtl::Static to improve shutdown on mac
Signed-off-by: Caolán McNamara <caolanm@redhat.com>
Diffstat (limited to 'basic')
-rw-r--r--basic/source/classes/sb.cxx20
1 files changed, 10 insertions, 10 deletions
diff --git a/basic/source/classes/sb.cxx b/basic/source/classes/sb.cxx
index f9cbab6779..9ef8de38ac 100644
--- a/basic/source/classes/sb.cxx
+++ b/basic/source/classes/sb.cxx
@@ -164,33 +164,33 @@ namespace {
typedef ::rtl::Reference< DocBasicItem > DocBasicItemRef;
typedef boost::unordered_map< const StarBASIC *, DocBasicItemRef > DocBasicItemMap;
- // ::rtl::OUStringHash, ::std::equal_to< ::rtl::OUString > > ModuleInitDependencyMap;
-static DocBasicItemMap GaDocBasicItems;
+class GaDocBasicItems : public rtl::Static<DocBasicItemMap,GaDocBasicItems> {};
const DocBasicItem* lclFindDocBasicItem( const StarBASIC* pDocBasic )
{
- DocBasicItemMap::iterator it = GaDocBasicItems.find( pDocBasic );
- return (it != GaDocBasicItems.end()) ? it->second.get() : 0;
+ DocBasicItemMap::iterator it = GaDocBasicItems::get().find( pDocBasic );
+ DocBasicItemMap::iterator end = GaDocBasicItems::get().end();
+ return (it != end) ? it->second.get() : 0;
}
void lclInsertDocBasicItem( StarBASIC& rDocBasic )
{
- DocBasicItemRef& rxDocBasicItem = GaDocBasicItems[ &rDocBasic ];
+ DocBasicItemRef& rxDocBasicItem = GaDocBasicItems::get()[ &rDocBasic ];
rxDocBasicItem.set( new DocBasicItem( rDocBasic ) );
rxDocBasicItem->startListening();
}
void lclRemoveDocBasicItem( StarBASIC& rDocBasic )
{
- DocBasicItemMap::iterator it = GaDocBasicItems.find( &rDocBasic );
- if( it != GaDocBasicItems.end() )
+ DocBasicItemMap::iterator it = GaDocBasicItems::get().find( &rDocBasic );
+ if( it != GaDocBasicItems::get().end() )
{
it->second->stopListening();
- GaDocBasicItems.erase( it );
+ GaDocBasicItems::get().erase( it );
}
- DocBasicItemMap::iterator it_end = GaDocBasicItems.end();
- for( it = GaDocBasicItems.begin(); it != it_end; ++it )
+ DocBasicItemMap::iterator it_end = GaDocBasicItems::get().end();
+ for( it = GaDocBasicItems::get().begin(); it != it_end; ++it )
it->second->clearDependingVarsOnDelete( rDocBasic );
}