diff options
Diffstat (limited to 'cpp/src/Ice/ObjectFactoryManager.cpp')
-rw-r--r-- | cpp/src/Ice/ObjectFactoryManager.cpp | 17 |
1 files changed, 9 insertions, 8 deletions
diff --git a/cpp/src/Ice/ObjectFactoryManager.cpp b/cpp/src/Ice/ObjectFactoryManager.cpp index 2627bd29196..4f9c11bc695 100644 --- a/cpp/src/Ice/ObjectFactoryManager.cpp +++ b/cpp/src/Ice/ObjectFactoryManager.cpp @@ -12,6 +12,7 @@ #include <Ice/ObjectFactory.h> #include <Ice/Functional.h> #include <Ice/LocalException.h> +#include <Ice/BasicStream.h> using namespace std; using namespace Ice; @@ -42,7 +43,7 @@ IceInternal::ObjectFactoryManager::remove(const string& id) ObjectFactoryPtr factory = 0; { IceUtil::Mutex::Lock sync(*this); - + FactoryMap::iterator p = _factoryMap.end(); if(_factoryMapHint != _factoryMap.end()) { @@ -51,7 +52,7 @@ IceInternal::ObjectFactoryManager::remove(const string& id) p = _factoryMapHint; } } - + if(p == _factoryMap.end()) { p = _factoryMap.find(id); @@ -64,9 +65,9 @@ IceInternal::ObjectFactoryManager::remove(const string& id) } } assert(p != _factoryMap.end()); - + factory = p->second; - + if(p == _factoryMapHint) { _factoryMap.erase(p++); @@ -77,7 +78,7 @@ IceInternal::ObjectFactoryManager::remove(const string& id) _factoryMap.erase(p); } } - + // // Destroy outside the lock // @@ -89,7 +90,7 @@ ObjectFactoryPtr IceInternal::ObjectFactoryManager::find(const string& id) const { IceUtil::Mutex::Lock sync(*this); - + FactoryMap& factoryMap = const_cast<FactoryMap&>(_factoryMap); FactoryMap::iterator p = factoryMap.end(); @@ -100,12 +101,12 @@ IceInternal::ObjectFactoryManager::find(const string& id) const p = _factoryMapHint; } } - + if(p == factoryMap.end()) { p = factoryMap.find(id); } - + if(p != factoryMap.end()) { _factoryMapHint = p; |