diff options
author | dai_y <dai_y@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 2006-08-14 19:11:52 +0000 |
---|---|---|
committer | dai_y <dai_y@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 2006-08-14 19:11:52 +0000 |
commit | 8a220c5a2ca3faf4f254dbbd9990cdc54b9e0086 (patch) | |
tree | 54fe4f467d81b1dfbf4ec951a42521d78fec73df /TAO/tao | |
parent | d254203af8490a15d835da1c99793c0c664f4130 (diff) | |
download | ATCD-8a220c5a2ca3faf4f254dbbd9990cdc54b9e0086.tar.gz |
Mon Aug 14 19:05:38 UTC 2006 Yan Dai <dai_y@ociweb.com>
Diffstat (limited to 'TAO/tao')
-rw-r--r-- | TAO/tao/PortableServer/Object_Adapter.cpp | 8 | ||||
-rw-r--r-- | TAO/tao/PortableServer/Object_Adapter.h | 4 |
2 files changed, 8 insertions, 4 deletions
diff --git a/TAO/tao/PortableServer/Object_Adapter.cpp b/TAO/tao/PortableServer/Object_Adapter.cpp index 1c55ffc0465..32c19d9acc4 100644 --- a/TAO/tao/PortableServer/Object_Adapter.cpp +++ b/TAO/tao/PortableServer/Object_Adapter.cpp @@ -633,6 +633,10 @@ TAO_Object_Adapter::open (ACE_ENV_SINGLE_ARG_DECL) CORBA::COMPLETED_NO)); ACE_CHECK; + // Keep reference of POAManager in TAO_Object_Adapter so the POAManager + // object is detructed after RootPOA is destructed. + the_poa_manager_ = poa_manager; + #endif // This makes sure that the default resources are open when the Root @@ -675,11 +679,7 @@ TAO_Object_Adapter::open (ACE_ENV_SINGLE_ARG_DECL) TAO_Root_POA::String root_poa_name (TAO_DEFAULT_ROOTPOA_NAME); this->root_ = this->servant_dispatcher_->create_Root_POA (root_poa_name, -#if (TAO_HAS_MINIMUM_POA == 0) && !defined (CORBA_E_COMPACT) && !defined (CORBA_E_MICRO) poa_manager.in (), -#else - PortableServer::POAManager::_duplicate (poa_manager.in ()), -#endif policies, this->lock (), this->thread_lock (), diff --git a/TAO/tao/PortableServer/Object_Adapter.h b/TAO/tao/PortableServer/Object_Adapter.h index e70ac6edeb9..ab254804d9a 100644 --- a/TAO/tao/PortableServer/Object_Adapter.h +++ b/TAO/tao/PortableServer/Object_Adapter.h @@ -26,6 +26,7 @@ #include "tao/PortableServer/Servant_Location.h" #include "tao/PortableServer/Default_Policy_Validator.h" #include "tao/PortableServer/POA_Policy_Set.h" +#include "tao/PortableServer/POAManagerC.h" #include "tao/Adapter.h" #include "tao/Adapter_Factory.h" @@ -497,6 +498,9 @@ private: #if (TAO_HAS_MINIMUM_POA == 0) && !defined (CORBA_E_COMPACT) && !defined (CORBA_E_MICRO) /// The POAManager factory. TAO_POAManager_Factory *poa_manager_factory_; +#else + /// The POAManager object reference. + PortableServer::POAManager_var the_poa_manager_; #endif /// The default validator and the beginning of the chain of |