From: <sv...@ww...> - 2005-11-26 18:27:26
|
Author: mkrose Date: 2005-11-26 10:27:17 -0800 (Sat, 26 Nov 2005) New Revision: 1682 Modified: trunk/CSP/SimData/Source/LogStream.cpp Log: Fix a potential segv on startup that depended on the order of static initialization. Browse at: https://www.zerobar.net/viewcvs/viewcvs.cgi?view=rev&rev=1682 Modified: trunk/CSP/SimData/Source/LogStream.cpp =================================================================== --- trunk/CSP/SimData/Source/LogStream.cpp 2005-11-26 17:52:15 UTC (rev 1681) +++ trunk/CSP/SimData/Source/LogStream.cpp 2005-11-26 18:27:17 UTC (rev 1682) @@ -47,7 +47,7 @@ // destruction. namespace { typedef std::map<std::string, LogStream *> LogStreamRegistry; - LogStreamRegistry NamedLogStreamRegistry; + LogStreamRegistry *NamedLogStreamRegistry = 0; } @@ -132,10 +132,11 @@ } LogStream *LogStream::getOrCreateNamedLog(const std::string &name) { - LogStreamRegistry::iterator iter = NamedLogStreamRegistry.find(name); - if (iter == NamedLogStreamRegistry.end()) { + if (!NamedLogStreamRegistry) NamedLogStreamRegistry = new LogStreamRegistry; + LogStreamRegistry::iterator iter = NamedLogStreamRegistry->find(name); + if (iter == NamedLogStreamRegistry->end()) { LogStream *logstream = new LogStream(std::cerr); - NamedLogStreamRegistry[name] = logstream; + NamedLogStreamRegistry->insert(std::make_pair(name, logstream)); return logstream; } return iter->second; |