summaryrefslogtreecommitdiff
path: root/TAO
diff options
context:
space:
mode:
Diffstat (limited to 'TAO')
-rw-r--r--TAO/ChangeLog98
-rw-r--r--TAO/TAO_IDL/be/be_visitor_ami_pre_proc.cpp40
-rw-r--r--TAO/orbsvcs/ImplRepo_Service/ImR_Activator_i.cpp15
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
{