summaryrefslogtreecommitdiff
path: root/TAO/tao/MProfile.i
diff options
context:
space:
mode:
authorOssama Othman <ossama-othman@users.noreply.github.com>2002-07-27 04:10:45 +0000
committerOssama Othman <ossama-othman@users.noreply.github.com>2002-07-27 04:10:45 +0000
commitf5675106957a77f83c7f48edddd14393e0108f2e (patch)
tree3811bb9c58873ba46b06eee7399d42b7e7f5d365 /TAO/tao/MProfile.i
parentef1d095b438a4740f376742615f5d5941f57379d (diff)
downloadATCD-f5675106957a77f83c7f48edddd14393e0108f2e.tar.gz
ChangeLogTag:Fri Jul 26 21:07:03 2002 Ossama Othman <ossama@uci.edu>
Diffstat (limited to 'TAO/tao/MProfile.i')
-rw-r--r--TAO/tao/MProfile.i23
1 files changed, 19 insertions, 4 deletions
diff --git a/TAO/tao/MProfile.i b/TAO/tao/MProfile.i
index 2dc20e68a29..bb1ef0dc451 100644
--- a/TAO/tao/MProfile.i
+++ b/TAO/tao/MProfile.i
@@ -42,12 +42,27 @@ TAO_MProfile::operator= (const TAO_MProfile& rhs)
ACE_INLINE
TAO_MProfile::~TAO_MProfile (void)
{
- if (policy_list_ != 0)
+ if (this->policy_list_ != 0)
{
- for (CORBA::ULong i = 0; i < policy_list_->length (); ++i)
- (*policy_list_)[i]->destroy ();
+ ACE_DECLARE_NEW_CORBA_ENV;
+ const CORBA::ULong len = this->policy_list_->length ();
+ for (CORBA::ULong i = 0; i < len; ++i)
+ {
+ ACE_TRY
+ {
+ (*this->policy_list_)[i]->destroy (ACE_ENV_SINGLE_ARG_PARAMETER);
+ ACE_TRY_CHECK;
+ }
+ ACE_CATCHANY
+ {
+ // Ignore all exceptions to allow other policies to be
+ // destroyed.
+ }
+ ACE_ENDTRY;
+ }
+
+ delete this->policy_list_;
}
- delete policy_list_;
this->cleanup ();
}