From f867ba38e2d7ee0c8edb4c4680334cf11ee9e2c2 Mon Sep 17 00:00:00 2001 From: Marc Laukien Date: Mon, 29 Jul 2002 20:31:14 +0000 Subject: leak fix --- cpp/src/Ice/RouterInfo.cpp | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'cpp/src/Ice/RouterInfo.cpp') diff --git a/cpp/src/Ice/RouterInfo.cpp b/cpp/src/Ice/RouterInfo.cpp index 32d8dbdfd52..e695ad0214d 100644 --- a/cpp/src/Ice/RouterInfo.cpp +++ b/cpp/src/Ice/RouterInfo.cpp @@ -12,6 +12,7 @@ #include #include #include +#include using namespace std; using namespace Ice; @@ -33,6 +34,8 @@ IceInternal::RouterManager::destroy() { IceUtil::Mutex::Lock sync(*this); + for_each(_table.begin(), _table.end(), Ice::secondVoidMemFun(&RouterInfo::destroy)); + _table.clear(); _tableHint = _table.end(); } @@ -83,6 +86,17 @@ IceInternal::RouterInfo::RouterInfo(const RouterPrx& router) : assert(_router); } +void +IceInternal::RouterInfo::destroy() +{ + IceUtil::Mutex::Lock sync(*this); + + _clientProxy = 0; + _serverProxy = 0; + _adapter = 0; + _routingTable->clear(); +} + bool IceInternal::RouterInfo::operator==(const RouterInfo& rhs) const { -- cgit v1.2.3