diff options
| author | Debi King (Dessie) <dessie@lindenlab.com> | 2011-09-21 16:04:12 -0400 |
|---|---|---|
| committer | Debi King (Dessie) <dessie@lindenlab.com> | 2011-09-21 16:04:12 -0400 |
| commit | 8665dee5f6cca501ec94b33e56c0c4de284fd757 (patch) | |
| tree | 9a3356ac50a7fa084c698092596c6ba3cba59423 /indra/llcommon/llinstancetracker.cpp | |
| parent | a66b5fb8cfc590110bb698d490510d66b6d8b430 (diff) | |
| parent | 2ae5e8db53e6d89e741cda0ce45e8cf65595bd16 (diff) | |
reconciled .hgtags
Diffstat (limited to 'indra/llcommon/llinstancetracker.cpp')
| -rw-r--r-- | indra/llcommon/llinstancetracker.cpp | 19 |
1 files changed, 10 insertions, 9 deletions
diff --git a/indra/llcommon/llinstancetracker.cpp b/indra/llcommon/llinstancetracker.cpp index f576204511..5dc3ea5d7b 100644 --- a/indra/llcommon/llinstancetracker.cpp +++ b/indra/llcommon/llinstancetracker.cpp @@ -35,14 +35,15 @@ //static void * & LLInstanceTrackerBase::getInstances(std::type_info const & info) { - static std::map<std::string, void *> instances; + typedef std::map<std::string, void *> InstancesMap; + static InstancesMap instances; - std::string k = info.name(); - if(instances.find(k) == instances.end()) - { - instances[k] = NULL; - } - - return instances[k]; + // std::map::insert() is just what we want here. You attempt to insert a + // (key, value) pair. If the specified key doesn't yet exist, it inserts + // the pair and returns a std::pair of (iterator, true). If the specified + // key DOES exist, insert() simply returns (iterator, false). One lookup + // handles both cases. + return instances.insert(InstancesMap::value_type(info.name(), + InstancesMap::mapped_type())) + .first->second; } - |
