summaryrefslogtreecommitdiff
path: root/cpp/src/Ice/RouterInfo.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/src/Ice/RouterInfo.cpp')
-rw-r--r--cpp/src/Ice/RouterInfo.cpp8
1 files changed, 8 insertions, 0 deletions
diff --git a/cpp/src/Ice/RouterInfo.cpp b/cpp/src/Ice/RouterInfo.cpp
index 17e688cdcd4..721ec912fe7 100644
--- a/cpp/src/Ice/RouterInfo.cpp
+++ b/cpp/src/Ice/RouterInfo.cpp
@@ -242,6 +242,14 @@ IceInternal::RouterInfo::addProxy(const ObjectPrx& proxy)
// If we successfully added the proxy to the router, we add it to our local map.
//
_map.insert(_map.begin(), pair<const Identity, int>(proxy->ice_getIdentity(), 0));
+
+ //
+ // We also must remove whatever proxies the router evicted.
+ //
+ for(ObjectProxySeq::iterator q = evictedProxies.begin(); q != evictedProxies.end(); ++q)
+ {
+ _map.erase((*q)->ice_getIdentity());
+ }
}
}