summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--cpp/src/Ice/LocatorInfo.cpp11
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;