summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormarina <marina@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2000-09-05 03:27:55 +0000
committermarina <marina@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2000-09-05 03:27:55 +0000
commitfcf03baff2fd2b42673eb2a79ed75097e05c00cc (patch)
tree1236e7586629b454a7064cc5f5449a7ccb4abe7c
parente06d15aeaa1621d5bb28798046fbf7ebd3751692 (diff)
downloadATCD-fcf03baff2fd2b42673eb2a79ed75097e05c00cc.tar.gz
ChangeLogTag:Mon Sep 4 22:18:16 2000 Marina Spivak <marina@cs.wustl.edu>
-rw-r--r--TAO/ChangeLogs/ChangeLog-02a15
-rw-r--r--TAO/tao/Stub.cpp36
2 files changed, 32 insertions, 19 deletions
diff --git a/TAO/ChangeLogs/ChangeLog-02a b/TAO/ChangeLogs/ChangeLog-02a
index c21d57bde12..df6c3ee0cfa 100644
--- a/TAO/ChangeLogs/ChangeLog-02a
+++ b/TAO/ChangeLogs/ChangeLog-02a
@@ -1,3 +1,16 @@
+Mon Sep 4 22:18:16 2000 Marina Spivak <marina@cs.wustl.edu>
+
+ * tao/Stub.cpp:
+
+ Changed the use of <MProfile::get_next> to
+ <MProfile::get_profile> in the TAO_Stub constructor. <get_next>
+ method has side effects, and was corrupting the state of the
+ stub's <base_profiles_> member. This fixes the following bug in
+ the orb: if the invocation using the first profile in the IOR
+ does not succeed for whatever reason, e.g., protocol not
+ supported, the invocation will fail without going through other
+ profiles.
+
Sun Sep 03 19:40:43 2000 Carlos O'Ryan <coryan@uci.edu>
* TAO_IDL/TAO_IDL_BE_DLL.dsp:
@@ -12,7 +25,7 @@ Sun Sep 3 15:35:11 2000 Carlos O'Ryan <coryan@uci.edu>
* orbsvcs/orbsvcs/Makefile.Svc_Utils:
DU/CXX is more strict about inter-library dependencies than
other compiles, add the libraries reported missing in the last
- build.
+ build.
Sun Sep 3 12:16:00 2000 Carlos O'Ryan <coryan@uci.edu>
diff --git a/TAO/tao/Stub.cpp b/TAO/tao/Stub.cpp
index ab967a375ce..82660f16cab 100644
--- a/TAO/tao/Stub.cpp
+++ b/TAO/tao/Stub.cpp
@@ -48,7 +48,7 @@ ACE_RCSID(tao, TAO_Stub, "$Id$")
priority_banded_connection_policy_ (0),
client_protocol_policy_ (0),
are_policies_parsed_ (0),
-
+
#endif /* TAO_HAS_RT_CORBA == 1 */
base_profiles_ ((CORBA::ULong) 0),
forward_profiles_ (0),
@@ -98,7 +98,7 @@ ACE_RCSID(tao, TAO_Stub, "$Id$")
for (CORBA::ULong i = 0; i < this->base_profiles_.profile_count (); ++i)
{
// Get the ith profile
- profile = this->base_profiles_.get_next ();
+ profile = this->base_profiles_.get_profile (i);
profile->the_stub (this);
}
}
@@ -138,11 +138,11 @@ TAO_Stub::~TAO_Stub (void)
this->orb_core_->_decr_refcnt ();
#if (TAO_HAS_RTCORBA == 1)
-
+
this->priority_model_policy_->destroy ();
this->priority_banded_connection_policy_->destroy ();
this->client_protocol_policy_->destroy ();
-
+
#endif /* TAO_HAS_RT_CORBA */
}
@@ -571,7 +571,7 @@ TAO_Stub::parse_policies (void)
= this->base_profiles_.policy_list ();
CORBA::ULong length = policy_list->length ();
-
+
for (unsigned int i = 0; i < length; ++i)
{
if (((*policy_list)[i]->policy_type () == RTCORBA::PRIORITY_MODEL_POLICY_TYPE))
@@ -583,7 +583,7 @@ TAO_Stub::parse_policies (void)
else if (((*policy_list)[i]->policy_type () == RTCORBA::CLIENT_PROTOCOL_POLICY_TYPE))
this->exposed_client_protocol ((*policy_list)[i].in ());
}
-
+
this->are_policies_parsed_ = 1;
}
@@ -592,7 +592,7 @@ TAO_Stub::exposed_priority_model (void)
{
if (!this->are_policies_parsed_)
this->parse_policies ();
-
+
if (!CORBA::is_nil (this->priority_model_policy_))
this->priority_model_policy_->_add_ref ();
@@ -606,13 +606,13 @@ void TAO_Stub::exposed_priority_model (CORBA::Policy_ptr policy)
RTCORBA::PriorityModelPolicy *pm_policy = 0;
pm_policy =
RTCORBA::PriorityModelPolicy::_narrow (policy);
-
+
if (!CORBA::is_nil (pm_policy))
{
this->priority_model_policy_ =
ACE_static_cast (TAO_PriorityModelPolicy *,
pm_policy);
-
+
}
}
}
@@ -622,10 +622,10 @@ TAO_Stub::exposed_priority_banded_connection (void)
{
if (!this->are_policies_parsed_)
this->parse_policies ();
-
+
if (!CORBA::is_nil (this->priority_banded_connection_policy_))
this->priority_banded_connection_policy_->_add_ref ();
-
+
return this->priority_banded_connection_policy_;
}
@@ -634,12 +634,12 @@ TAO_Stub::exposed_priority_banded_connection (CORBA::Policy_ptr policy)
{
if (!CORBA::is_nil (policy))
{
- RTCORBA::PriorityBandedConnectionPolicy_ptr pbc_policy =
+ RTCORBA::PriorityBandedConnectionPolicy_ptr pbc_policy =
RTCORBA::PriorityBandedConnectionPolicy::_narrow (policy);
-
+
if (!CORBA::is_nil (pbc_policy))
{
- this->priority_banded_connection_policy_ =
+ this->priority_banded_connection_policy_ =
ACE_static_cast (TAO_PriorityBandedConnectionPolicy *,
pbc_policy);
}
@@ -650,10 +650,10 @@ TAO_Stub::exposed_client_protocol (void)
{
if (!this->are_policies_parsed_)
this->parse_policies ();
-
+
if (!CORBA::is_nil (this->client_protocol_policy_))
this->client_protocol_policy_->_add_ref ();
-
+
return this->client_protocol_policy_;
}
@@ -662,9 +662,9 @@ TAO_Stub::exposed_client_protocol (CORBA::Policy_ptr policy)
{
if (!CORBA::is_nil (policy))
{
- RTCORBA::ClientProtocolPolicy_ptr cp_policy =
+ RTCORBA::ClientProtocolPolicy_ptr cp_policy =
RTCORBA::ClientProtocolPolicy::_narrow (policy);
-
+
if (!CORBA::is_nil (cp_policy))
{
this->client_protocol_policy_ =