diff options
-rw-r--r-- | TAO/CIAO/DAnCE/ciao/Home_Servant_Impl_T.cpp | 6 | ||||
-rw-r--r-- | TAO/CIAO/DAnCE/ciao/Home_Servant_Impl_T.h | 7 |
2 files changed, 10 insertions, 3 deletions
diff --git a/TAO/CIAO/DAnCE/ciao/Home_Servant_Impl_T.cpp b/TAO/CIAO/DAnCE/ciao/Home_Servant_Impl_T.cpp index 8e094d0894e..5719b35f507 100644 --- a/TAO/CIAO/DAnCE/ciao/Home_Servant_Impl_T.cpp +++ b/TAO/CIAO/DAnCE/ciao/Home_Servant_Impl_T.cpp @@ -48,6 +48,12 @@ namespace CIAO COMP_EXEC_VAR, COMP_SVNT>::~Home_Servant_Impl (void) { + const obj_iterator end (this->objref_map_.end ()); + for (obj_iterator iter (this->objref_map_.begin ()); + iter != end; ++iter) + { + this->remove_component ((*iter).int_id_); + } } // Operations for CCMHome interface. diff --git a/TAO/CIAO/DAnCE/ciao/Home_Servant_Impl_T.h b/TAO/CIAO/DAnCE/ciao/Home_Servant_Impl_T.h index 02b7d9ac84e..80e3489b71d 100644 --- a/TAO/CIAO/DAnCE/ciao/Home_Servant_Impl_T.h +++ b/TAO/CIAO/DAnCE/ciao/Home_Servant_Impl_T.h @@ -103,12 +103,13 @@ namespace CIAO ACE_Equal_To<PortableServer::ObjectId>, ACE_SYNCH_MUTEX> component_map_; - ACE_Hash_Map_Manager_Ex<PortableServer::ObjectId, + typedef ACE_Hash_Map_Manager_Ex<PortableServer::ObjectId, Components::CCMObject_ptr, TAO_ObjectId_Hash, ACE_Equal_To<PortableServer::ObjectId>, - ACE_SYNCH_MUTEX> - objref_map_; + ACE_SYNCH_MUTEX> OBJREF_MAP; + typedef OBJREF_MAP::iterator obj_iterator; + OBJREF_MAP objref_map_; }; } |