summaryrefslogtreecommitdiff
path: root/TAO/tao/IIOP_Object.i
diff options
context:
space:
mode:
Diffstat (limited to 'TAO/tao/IIOP_Object.i')
-rw-r--r--TAO/tao/IIOP_Object.i15
1 files changed, 9 insertions, 6 deletions
diff --git a/TAO/tao/IIOP_Object.i b/TAO/tao/IIOP_Object.i
index ffa50e0f1f7..eed11414d1a 100644
--- a/TAO/tao/IIOP_Object.i
+++ b/TAO/tao/IIOP_Object.i
@@ -40,6 +40,10 @@ IIOP_Object::~IIOP_Object (void)
assert (this->refcount_ == 0);
delete this->fwd_profile_;
delete this->fwd_profile_lock_ptr_;
+
+ // Cleanup hint
+ if (this->handler_ != 0)
+ this->handler_->cleanup_hint ();
}
ACE_INLINE
@@ -52,9 +56,8 @@ IIOP_Object::IIOP_Object (char *repository_id)
first_locate_request_ (0),
handler_ (0)
{
- this->fwd_profile_lock_ptr_ = TAO_ORB_Core_instance ()
- ->client_factory ()
- ->create_iiop_profile_lock ();
+ this->fwd_profile_lock_ptr_ =
+ TAO_ORB_Core_instance ()->client_factory ()->create_iiop_profile_lock ();
}
ACE_INLINE
@@ -69,9 +72,8 @@ IIOP_Object::IIOP_Object (char *repository_id,
first_locate_request_ (0),
handler_ (0)
{
- this->fwd_profile_lock_ptr_ = TAO_ORB_Core_instance ()
- ->client_factory ()
- ->create_iiop_profile_lock ();
+ this->fwd_profile_lock_ptr_ =
+ TAO_ORB_Core_instance ()->client_factory ()->create_iiop_profile_lock ();
}
@@ -155,6 +157,7 @@ IIOP_Object::handler (void)
ACE_INLINE void
IIOP_Object::reset_handler (void)
{
+ this->handler_->cleanup_hint ();
this->handler_ = 0;
}