diff options
author | Mark Spruiell <mes@zeroc.com> | 2004-11-02 01:35:14 +0000 |
---|---|---|
committer | Mark Spruiell <mes@zeroc.com> | 2004-11-02 01:35:14 +0000 |
commit | 43ea7316fd36a83be62d88a657bc70fff6b69652 (patch) | |
tree | 23b272bd3d99264cfb8c869ae71a12602694201f /cpp | |
parent | reenabling IceStorm federation tests (diff) | |
download | ice-43ea7316fd36a83be62d88a657bc70fff6b69652.tar.bz2 ice-43ea7316fd36a83be62d88a657bc70fff6b69652.tar.xz ice-43ea7316fd36a83be62d88a657bc70fff6b69652.zip |
fixing comparison problems
Diffstat (limited to 'cpp')
-rw-r--r-- | cpp/src/Ice/Reference.cpp | 68 |
1 files changed, 52 insertions, 16 deletions
diff --git a/cpp/src/Ice/Reference.cpp b/cpp/src/Ice/Reference.cpp index 4705dfad427..b680cbac9c9 100644 --- a/cpp/src/Ice/Reference.cpp +++ b/cpp/src/Ice/Reference.cpp @@ -599,12 +599,19 @@ IceInternal::FixedReference::operator<(const Reference& r) const { return false; } - const FixedReference* rhs = dynamic_cast<const FixedReference*>(&r); - if(!rhs || !Reference::operator<(r)) + if(Reference::operator<(r)) { - return false; + return true; } - return fixedConnections < rhs->fixedConnections; + if(Reference::operator==(r)) + { + const FixedReference* rhs = dynamic_cast<const FixedReference*>(&r); + if(rhs) + { + return fixedConnections < rhs->fixedConnections; + } + } + return false; } ReferencePtr @@ -700,12 +707,19 @@ IceInternal::RoutableReference::operator<(const Reference& r) const { return false; } - const RoutableReference* rhs = dynamic_cast<const RoutableReference*>(&r); - if(!rhs || !Reference::operator<(r)) + if(Reference::operator<(r)) { - return false; + return true; } - return routerInfo < rhs->routerInfo; + if(Reference::operator==(r)) + { + const RoutableReference* rhs = dynamic_cast<const RoutableReference*>(&r); + if(rhs) + { + return routerInfo < rhs->routerInfo; + } + } + return false; } IceInternal::RoutableReference::RoutableReference(const InstancePtr& inst, const Ice::Identity& ident, @@ -873,12 +887,19 @@ IceInternal::DirectReference::operator<(const Reference& r) const { return false; } - const DirectReference* rhs = dynamic_cast<const DirectReference*>(&r); - if(!rhs || !RoutableReference::operator<(r)) + if(RoutableReference::operator<(r)) { - return false; + return true; } - return endpoints < rhs->endpoints; + if(RoutableReference::operator==(r)) + { + const DirectReference* rhs = dynamic_cast<const DirectReference*>(&r); + if(rhs) + { + return endpoints < rhs->endpoints; + } + } + return false; } ReferencePtr @@ -1109,12 +1130,27 @@ IceInternal::IndirectReference::operator<(const Reference& r) const { return false; } - const IndirectReference* rhs = dynamic_cast<const IndirectReference*>(&r); - if(!rhs || !RoutableReference::operator<(r)) + if(RoutableReference::operator<(r)) { - return false; + return true; } - return adapterId < rhs->adapterId && locatorInfo < rhs->locatorInfo; + if(RoutableReference::operator==(r)) + { + const IndirectReference* rhs = dynamic_cast<const IndirectReference*>(&r); + if(rhs) + { + if(adapterId < rhs->adapterId) + { + return true; + } + else if(rhs->adapterId < adapterId) + { + return false; + } + return locatorInfo < rhs->locatorInfo; + } + } + return false; } ReferencePtr |