diff options
-rw-r--r-- | cpp/src/Ice/LocatorInfo.cpp | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/cpp/src/Ice/LocatorInfo.cpp b/cpp/src/Ice/LocatorInfo.cpp index 7c28a737f29..4842d17ca3f 100644 --- a/cpp/src/Ice/LocatorInfo.cpp +++ b/cpp/src/Ice/LocatorInfo.cpp @@ -57,13 +57,15 @@ IceInternal::LocatorManager::destroy() } LocatorInfoPtr -IceInternal::LocatorManager::get(const LocatorPrx& locator) +IceInternal::LocatorManager::get(const LocatorPrx& loc) { - if(!locator) + if(!loc) { return 0; } + LocatorPrx locator = LocatorPrx::uncheckedCast(loc->ice_locator(0)); // The locator can't be located. + // // TODO: reap unused locator info objects? // @@ -263,6 +265,11 @@ IceInternal::LocatorInfo::getLocatorRegistry() if(!_locatorRegistry) // Lazy initialization. { _locatorRegistry = _locator->getRegistry(); + + // + // The locator registry can't be located. + // + _locatorRegistry = LocatorRegistryPrx::uncheckedCast(_locatorRegistry->ice_locator(0)); } return _locatorRegistry; |