diff options
author | Ossama Othman <ossama-othman@users.noreply.github.com> | 2002-07-27 04:10:45 +0000 |
---|---|---|
committer | Ossama Othman <ossama-othman@users.noreply.github.com> | 2002-07-27 04:10:45 +0000 |
commit | f5675106957a77f83c7f48edddd14393e0108f2e (patch) | |
tree | 3811bb9c58873ba46b06eee7399d42b7e7f5d365 /TAO/tao/MProfile.i | |
parent | ef1d095b438a4740f376742615f5d5941f57379d (diff) | |
download | ATCD-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.i | 23 |
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 (); } |