summaryrefslogtreecommitdiff
path: root/writerfilter
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2011-11-11 22:19:17 +0000
committerCaolán McNamara <caolanm@redhat.com>2011-11-14 07:35:56 +0000
commitf535855d7b8e424361d76c1e0adf3ecd770c0a0e (patch)
treeb73969749197444cc024125d832502e74ec49793 /writerfilter
parent0ddc688ab48a3a34167168301a73f1c642d01e0d (diff)
tagLogger dtor never called
Diffstat (limited to 'writerfilter')
-rw-r--r--writerfilter/source/resourcemodel/TagLogger.cxx19
1 files changed, 8 insertions, 11 deletions
diff --git a/writerfilter/source/resourcemodel/TagLogger.cxx b/writerfilter/source/resourcemodel/TagLogger.cxx
index 016dd2bb0aee..9cfaba1eda38 100644
--- a/writerfilter/source/resourcemodel/TagLogger.cxx
+++ b/writerfilter/source/resourcemodel/TagLogger.cxx
@@ -35,10 +35,7 @@
namespace writerfilter
{
- typedef boost::unordered_map<string, TagLogger::Pointer_t> TagLoggerHashMap_t;
- static TagLoggerHashMap_t * tagLoggers = NULL;
-
- TagLogger::TagLogger(const char* name)
+ TagLogger::TagLogger(const char* name)
: pWriter( NULL ), pName( name )
{
}
@@ -99,20 +96,20 @@ namespace writerfilter
TagLogger::Pointer_t TagLogger::getInstance(const char * name)
{
- if (tagLoggers == NULL)
- tagLoggers = new TagLoggerHashMap_t();
+ typedef boost::unordered_map<string, TagLogger::Pointer_t> TagLoggerHashMap_t;
+ static TagLoggerHashMap_t tagLoggers;
- TagLoggerHashMap_t::iterator aIt = tagLoggers->end();
+ TagLoggerHashMap_t::iterator aIt = tagLoggers.end();
string sName = name;
- if (! tagLoggers->empty())
- aIt = tagLoggers->find(sName);
+ if (! tagLoggers.empty())
+ aIt = tagLoggers.find(sName);
- if (aIt == tagLoggers->end())
+ if (aIt == tagLoggers.end())
{
TagLogger::Pointer_t pTagLogger(new TagLogger(name));
pair<string, TagLogger::Pointer_t> entry(sName, pTagLogger);
- aIt = tagLoggers->insert(entry).first;
+ aIt = tagLoggers.insert(entry).first;
}
return aIt->second;