diff options
Diffstat (limited to 'TAO')
-rw-r--r-- | TAO/ChangeLog | 98 | ||||
-rw-r--r-- | TAO/TAO_IDL/be/be_visitor_ami_pre_proc.cpp | 40 | ||||
-rw-r--r-- | TAO/orbsvcs/ImplRepo_Service/ImR_Activator_i.cpp | 15 |
3 files changed, 75 insertions, 78 deletions
diff --git a/TAO/ChangeLog b/TAO/ChangeLog index 8ce41937862..ef8d6f968fa 100644 --- a/TAO/ChangeLog +++ b/TAO/ChangeLog @@ -1,57 +1,71 @@ +Thu Mar 9 16:04:22 UTC 2006 Simon McQueen <sm@prismtech.com> + + * TAO_IDL/be/be_visitor_ami_pre_proc.cpp: + + Don't bail out on code generation when the node is imported. + + This fixes bug #2429. + + * orbsvcs/ImplRepo_Service/ImR_Activator_i.cpp: + + Prevent seg faults when the activator has been fed a duff ImR IOR. + + This fixes bug #2445. + Thu Mar 9 15:37:05 UTC 2006 J.T. Conklin <jtc@acorntoolworks.com> * tao/AnyTypeCode/Dynamic.pidl: - * tao/AnyTypeCode/Dynamic_Parameter.pidl: - * tao/BiDir_GIOP/BiDirPolicy.pidl: - * tao/CodecFactory/IOP_Codec.pidl: - * tao/DynamicAny/DynamicAny.pidl: - * tao/IFR_Client/IFR_Base.pidl: - * tao/IFR_Client/IFR_Basic.pidl: - * tao/ObjRefTemplate/ObjectReferenceTemplate.pidl: - * tao/PI/ClientRequestInfo.pidl: - * tao/PI/ORBInitInfo.pidl: - * tao/PI/PICurrent.pidl: - * tao/PI/PolicyFactory.pidl: - * tao/PI/RequestInfo.pidl: - * tao/PI_Server/ServerRequestInfo.pidl: - * tao/PI_Server/ServerRequestInterceptor.pidl: - * tao/PortableServer/IdAssignmentPolicy.pidl: - * tao/PortableServer/IdUniquenessPolicy.pidl: - * tao/PortableServer/ImplicitActivationPolicy.pidl: - * tao/PortableServer/LifespanPolicy.pidl: - * tao/PortableServer/PS_Current.pidl: - * tao/PortableServer/PS_Forward.pidl: - * tao/PortableServer/PortableServer.pidl: - * tao/PortableServer/RequestProcessingPolicy.pidl: - * tao/PortableServer/ServantLocator.pidl: - * tao/PortableServer/ServantRetentionPolicy.pidl: - * tao/PortableServer/ThreadPolicy.pidl: - * tao/RTCORBA/RTCORBA.pidl: - * tao/RTScheduling/RTScheduler_include.pidl: + * tao/AnyTypeCode/Dynamic_Parameter.pidl: + * tao/BiDir_GIOP/BiDirPolicy.pidl: + * tao/CodecFactory/IOP_Codec.pidl: + * tao/DynamicAny/DynamicAny.pidl: + * tao/IFR_Client/IFR_Base.pidl: + * tao/IFR_Client/IFR_Basic.pidl: + * tao/ObjRefTemplate/ObjectReferenceTemplate.pidl: + * tao/PI/ClientRequestInfo.pidl: + * tao/PI/ORBInitInfo.pidl: + * tao/PI/PICurrent.pidl: + * tao/PI/PolicyFactory.pidl: + * tao/PI/RequestInfo.pidl: + * tao/PI_Server/ServerRequestInfo.pidl: + * tao/PI_Server/ServerRequestInterceptor.pidl: + * tao/PortableServer/IdAssignmentPolicy.pidl: + * tao/PortableServer/IdUniquenessPolicy.pidl: + * tao/PortableServer/ImplicitActivationPolicy.pidl: + * tao/PortableServer/LifespanPolicy.pidl: + * tao/PortableServer/PS_Current.pidl: + * tao/PortableServer/PS_Forward.pidl: + * tao/PortableServer/PortableServer.pidl: + * tao/PortableServer/RequestProcessingPolicy.pidl: + * tao/PortableServer/ServantLocator.pidl: + * tao/PortableServer/ServantRetentionPolicy.pidl: + * tao/PortableServer/ThreadPolicy.pidl: + * tao/RTCORBA/RTCORBA.pidl: + * tao/RTScheduling/RTScheduler_include.pidl: Add "tao/" prefix to #includes of *.pidl files found in ${TAO_ROOT}/tao. Thu Mar 9 09:18:58 2006 Douglas C. Schmidt <schmidt@cse.wustl.edu> - * COPYING: Updated the date to include 2006. - Thanks to Alan Kierstead <ackierstead at fedex dot com> for - motivating the fix to this oversight. - + * COPYING: Updated the date to include 2006. + Thanks to Alan Kierstead <ackierstead at fedex dot com> for + motivating the fix to this oversight. + Thu Mar 9 15:03:02 UTC 2006 J.T. Conklin <jtc@acorntoolworks.com> * orbsvcs/orbsvcs/CSIIOP.idl: - * tao/Domain.pidl: - * tao/GIOP.pidl: - * tao/IOP.pidl: - * tao/IOP_IOR.pidl: - * tao/Messaging_PolicyValue.pidl: - * tao/PI_Forward.pidl: - * tao/Policy.pidl: - * tao/PortableInterceptor.pidl: - * tao/Services.pidl: - * tao/TAO.pidl: - * tests/Portable_Interceptors/Request_Interceptor_Flow/test.idl: + * tao/Domain.pidl: + * tao/GIOP.pidl: + * tao/IOP.pidl: + * tao/IOP_IOR.pidl: + * tao/Messaging_PolicyValue.pidl: + * tao/PI_Forward.pidl: + * tao/Policy.pidl: + * tao/PortableInterceptor.pidl: + * tao/Services.pidl: + * tao/TAO.pidl: + * tests/Portable_Interceptors/Request_Interceptor_Flow/test.idl: Add "tao/" prefix to #includes of *.pidl files found in ${TAO_ROOT}/tao. Thanks to Thomas Lockhart <Thomas dot diff --git a/TAO/TAO_IDL/be/be_visitor_ami_pre_proc.cpp b/TAO/TAO_IDL/be/be_visitor_ami_pre_proc.cpp index 86d6b596c50..76e04fbc7b1 100644 --- a/TAO/TAO_IDL/be/be_visitor_ami_pre_proc.cpp +++ b/TAO/TAO_IDL/be/be_visitor_ami_pre_proc.cpp @@ -111,10 +111,7 @@ be_visitor_ami_pre_proc::visit_interface (be_interface *node) be_valuetype *excep_holder = 0; be_valuetype *global_excep_holder = be_global->exceptionholder (); - if (! node->imported ()) - { - excep_holder = this->create_exception_holder (node); - } + excep_holder = this->create_exception_holder (node); be_interface *reply_handler = this->create_reply_handler (node, excep_holder); @@ -142,14 +139,6 @@ be_visitor_ami_pre_proc::visit_interface (be_interface *node) -1); } - // After generating the reply handler for imported nodes, so they - // can be looked up as possible parents of a reply handler from - // a non-imported node, we can skip the rest of the function. - if (node->imported ()) - { - return 0; - } - // Set the proper strategy. be_interface_ami_strategy *bias = 0; ACE_NEW_RETURN (bias, @@ -703,12 +692,9 @@ be_visitor_ami_pre_proc::create_reply_handler (be_interface *node, this->create_reply_handler_operation (get_operation, reply_handler); - if (!node->imported ()) - { - this->create_excep_operation (get_operation, - reply_handler, - excep_holder); - } + this->create_excep_operation (get_operation, + reply_handler, + excep_holder); if (!attribute->readonly ()) { @@ -717,12 +703,9 @@ be_visitor_ami_pre_proc::create_reply_handler (be_interface *node, this->create_reply_handler_operation (set_operation, reply_handler); - if (!node->imported ()) - { - this->create_excep_operation (set_operation, - reply_handler, - excep_holder); - } + this->create_excep_operation (set_operation, + reply_handler, + excep_holder); } } else @@ -734,12 +717,9 @@ be_visitor_ami_pre_proc::create_reply_handler (be_interface *node, this->create_reply_handler_operation (operation, reply_handler); - if (!node->imported ()) - { - this->create_excep_operation (operation, - reply_handler, - excep_holder); - } + this->create_excep_operation (operation, + reply_handler, + excep_holder); } } } // end of while loop diff --git a/TAO/orbsvcs/ImplRepo_Service/ImR_Activator_i.cpp b/TAO/orbsvcs/ImplRepo_Service/ImR_Activator_i.cpp index 85de6cc0b6d..3d6fd86ae2b 100644 --- a/TAO/orbsvcs/ImplRepo_Service/ImR_Activator_i.cpp +++ b/TAO/orbsvcs/ImplRepo_Service/ImR_Activator_i.cpp @@ -78,14 +78,17 @@ ImR_Activator_i::register_with_imr (ImplementationRepository::Activator_ptr acti locator_ = ImplementationRepository::Locator::_narrow (obj.in () ACE_ENV_ARG_PARAMETER); ACE_TRY_CHECK; - this->registration_token_ = - locator_->register_activator (name_.c_str (), activator ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; + if (!CORBA::is_nil (locator_)) + { + this->registration_token_ = + locator_->register_activator (name_.c_str (), activator ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; - if (debug_ > 0) - ACE_DEBUG((LM_DEBUG, "ImR Activator: Registered with ImR.\n")); + if (debug_ > 0) + ACE_DEBUG((LM_DEBUG, "ImR Activator: Registered with ImR.\n")); - return; + return; + } } ACE_CATCHANY { |