From dfdf1a5b0bd8e60aa2e90f702d64e67269879117 Mon Sep 17 00:00:00 2001 From: bala Date: Thu, 16 Oct 2003 17:46:10 +0000 Subject: ChangeLogTag:Thu Oct 16 12:42:59 2003 Balachandran Natarajan --- TAO/ChangeLog_ref | 11 +++++++++++ TAO/tao/LocateRequest_Invocation_Adapter.cpp | 4 ++-- TAO/tao/Profile_Transport_Resolver.h | 1 + TAO/tao/Profile_Transport_Resolver.inl | 8 ++++++++ 4 files changed, 22 insertions(+), 2 deletions(-) diff --git a/TAO/ChangeLog_ref b/TAO/ChangeLog_ref index 304763ad676..eead9b90859 100644 --- a/TAO/ChangeLog_ref +++ b/TAO/ChangeLog_ref @@ -1,3 +1,14 @@ +Thu Oct 16 12:42:59 2003 Balachandran Natarajan + + * tao/LocateRequest_Invocation_Adapter.cpp: + get_inconsistent_policies (), now returns _retn () instead of + .out () on the PolicyList_var. + + * tao/Profile_Transport_Resolver.h: + * tao/Profile_Transport_Resolver.inl: Added a new method + steal_inconsistent_policies () which makes this object to loose + ownership of the PolicyList pointer. + Thu Oct 16 11:31:45 2003 Balachandran Natarajan * tao/LocateRequest_Invocation_Adapter.cpp: Initialize the diff --git a/TAO/tao/LocateRequest_Invocation_Adapter.cpp b/TAO/tao/LocateRequest_Invocation_Adapter.cpp index 69c4e8c5b24..332e9e79dee 100644 --- a/TAO/tao/LocateRequest_Invocation_Adapter.cpp +++ b/TAO/tao/LocateRequest_Invocation_Adapter.cpp @@ -81,7 +81,7 @@ namespace TAO ACE_CATCH (CORBA::INV_POLICY, ex) { this->list_ = - resolver.inconsistent_policies (); + resolver.steal_inconsistent_policies (); ACE_RE_THROW; } ACE_CATCHANY @@ -98,7 +98,7 @@ namespace TAO CORBA::PolicyList * LocateRequest_Invocation_Adapter::get_inconsistent_policies (void) { - return this->list_.out (); + return this->list_._retn (); } bool diff --git a/TAO/tao/Profile_Transport_Resolver.h b/TAO/tao/Profile_Transport_Resolver.h index 23d7cc21b0f..380a69c9872 100644 --- a/TAO/tao/Profile_Transport_Resolver.h +++ b/TAO/tao/Profile_Transport_Resolver.h @@ -118,6 +118,7 @@ namespace TAO CORBA::PolicyList *inconsistent_policies (void) const; + CORBA::PolicyList *steal_inconsistent_policies (void); private: /// Helper method to access get the connection timeout from the diff --git a/TAO/tao/Profile_Transport_Resolver.inl b/TAO/tao/Profile_Transport_Resolver.inl index b5461a23800..3314fa6354d 100644 --- a/TAO/tao/Profile_Transport_Resolver.inl +++ b/TAO/tao/Profile_Transport_Resolver.inl @@ -37,4 +37,12 @@ namespace TAO { return this->inconsistent_policies_; } + + ACE_INLINE CORBA::PolicyList * + Profile_Transport_Resolver::steal_inconsistent_policies (void) + { + CORBA::PolicyList *tmp = this->inconsistent_policies_; + this->inconsistent_policies_ = 0; + return tmp; + } } -- cgit v1.2.1