summaryrefslogtreecommitdiff
path: root/cppe/src/IceE/Reference.cpp
diff options
context:
space:
mode:
authorBenoit Foucher <benoit@zeroc.com>2006-03-30 13:42:38 +0000
committerBenoit Foucher <benoit@zeroc.com>2006-03-30 13:42:38 +0000
commitc0857ef56655107ebaa3099c0e500cfcbe0470e0 (patch)
tree86c4ad36081315996741131118c99deb347fc619 /cppe/src/IceE/Reference.cpp
parentInitialize paramater (diff)
downloadice-c0857ef56655107ebaa3099c0e500cfcbe0470e0.tar.bz2
ice-c0857ef56655107ebaa3099c0e500cfcbe0470e0.tar.xz
ice-c0857ef56655107ebaa3099c0e500cfcbe0470e0.zip
Finished fixing bug 847
Diffstat (limited to 'cppe/src/IceE/Reference.cpp')
-rw-r--r--cppe/src/IceE/Reference.cpp44
1 files changed, 7 insertions, 37 deletions
diff --git a/cppe/src/IceE/Reference.cpp b/cppe/src/IceE/Reference.cpp
index 4c8123e5994..9f670541190 100644
--- a/cppe/src/IceE/Reference.cpp
+++ b/cppe/src/IceE/Reference.cpp
@@ -694,21 +694,7 @@ IceInternal::DirectReference::changeEndpoints(const vector<EndpointPtr>& newEndp
ReferencePtr
IceInternal::DirectReference::changeLocator(const LocatorPrx& newLocator) const
{
- if(newLocator)
- {
- LocatorInfoPtr newLocatorInfo = getInstance()->locatorManager()->get(newLocator);
-#ifdef ICEE_HAS_ROUTER
- return getInstance()->referenceFactory()->create(getIdentity(), getContext(), getFacet(), getMode(),
- getSecure(), "", 0, newLocatorInfo);
-#else
- return getInstance()->referenceFactory()->create(getIdentity(), getContext(), getFacet(), getMode(),
- getSecure(), "", newLocatorInfo);
-#endif
- }
- else
- {
- return DirectReferencePtr(const_cast<DirectReference*>(this));
- }
+ return DirectReferencePtr(const_cast<DirectReference*>(this));
}
#endif
@@ -895,30 +881,14 @@ IceInternal::IndirectReference::getEndpoints() const
ReferencePtr
IceInternal::IndirectReference::changeLocator(const LocatorPrx& newLocator) const
{
- //
- // Return a direct reference if a null locator is given.
- //
- if(!newLocator)
+ LocatorInfoPtr newLocatorInfo = getInstance()->locatorManager()->get(newLocator);
+ if(newLocatorInfo == _locatorInfo)
{
-#ifdef ICEE_HAS_ROUTER
- return getInstance()->referenceFactory()->create(getIdentity(), getContext(), getFacet(), getMode(),
- getSecure(), vector<EndpointPtr>(), getRouterInfo());
-#else
- return getInstance()->referenceFactory()->create(getIdentity(), getContext(), getFacet(), getMode(),
- getSecure(), vector<EndpointPtr>());
-#endif
- }
- else
- {
- LocatorInfoPtr newLocatorInfo = getInstance()->locatorManager()->get(newLocator);
- if(newLocatorInfo == _locatorInfo)
- {
- return IndirectReferencePtr(const_cast<IndirectReference*>(this));
- }
- IndirectReferencePtr r = IndirectReferencePtr::dynamicCast(getInstance()->referenceFactory()->copy(this));
- r->_locatorInfo = newLocatorInfo;
- return r;
+ return IndirectReferencePtr(const_cast<IndirectReference*>(this));
}
+ IndirectReferencePtr r = IndirectReferencePtr::dynamicCast(getInstance()->referenceFactory()->copy(this));
+ r->_locatorInfo = newLocatorInfo;
+ return r;
}
ReferencePtr