diff options
author | bala <balanatarajan@users.noreply.github.com> | 2002-11-02 17:05:31 +0000 |
---|---|---|
committer | bala <balanatarajan@users.noreply.github.com> | 2002-11-02 17:05:31 +0000 |
commit | 3cfc84207c523a11b7b17aff9830e77dabe436e9 (patch) | |
tree | 5c0f787453a1524ff3759095bbf8364fbf18bf6a | |
parent | 9e0b7ddfc88af97a796221276ece04be18256f83 (diff) | |
download | ATCD-3cfc84207c523a11b7b17aff9830e77dabe436e9.tar.gz |
ChangeLogTag: Sat Nov 2 10:48:46 2002 Balachandran Natarajan <bala@isis-server.isis.vanderbilt.edu>
-rw-r--r-- | TAO/ChangeLog | 6 | ||||
-rw-r--r-- | TAO/tao/Utils/Servant_Var.h | 3 | ||||
-rw-r--r-- | TAO/tao/Utils/Servant_Var.inl | 23 |
3 files changed, 21 insertions, 11 deletions
diff --git a/TAO/ChangeLog b/TAO/ChangeLog index cc257cde038..05c9df98c7e 100644 --- a/TAO/ChangeLog +++ b/TAO/ChangeLog @@ -1,3 +1,9 @@ +Sat Nov 2 10:48:46 2002 Balachandran Natarajan <bala@isis-server.isis.vanderbilt.edu> + + * tao/Utils/Servant_Var.h: + * tao/Utils/Servant_Var.inl: Fixed errors in non-native exceptions + build. + Fri Nov 1 20:12:09 2002 Balachandran Natarajan <bala@isis-server.isis.vanderbilt.edu> * orbsvcs/orbsvcs/SSLIOP/SSLIOP_Connector.cpp (connect): diff --git a/TAO/tao/Utils/Servant_Var.h b/TAO/tao/Utils/Servant_Var.h index adbb59eb422..b91d5a09812 100644 --- a/TAO/tao/Utils/Servant_Var.h +++ b/TAO/tao/Utils/Servant_Var.h @@ -51,7 +51,8 @@ namespace TAO /// Destructor. Removes a reference from the underlying object, /// possibly destroying it. - ~Servant_Var(); + ~Servant_Var() + ACE_THROW_SPEC (()); /// Assignment operator. Assumes ownership of @c p. Servant_Var<T> & operator=(T * p); diff --git a/TAO/tao/Utils/Servant_Var.inl b/TAO/tao/Utils/Servant_Var.inl index 8c457abbc5c..ad00a9e1eb3 100644 --- a/TAO/tao/Utils/Servant_Var.inl +++ b/TAO/tao/Utils/Servant_Var.inl @@ -54,23 +54,26 @@ operator=(T * p) return *this; } -template <class T> -ACE_INLINE TAO::Utils::Servant_Var<T>:: -~Servant_Var() +template <class T> ACE_INLINE +TAO::Utils::Servant_Var<T>::~Servant_Var () + ACE_THROW_SPEC (()) { + ACE_DECLARE_NEW_CORBA_ENV; // Unfortunately, there is no throw spec on _remove_ref, so we // can't assume that it will not throw. If it does, then we are in // trouble. In any event, we can't let the exception escape our // destructor. if (ptr_ != 0) { - try - { - ptr_->_remove_ref(); - } - catch (...) - { - } + ACE_TRY + { + ptr_->_remove_ref (ACE_ENV_SINGLE_ARG_PARAMETER); + ACE_TRY_CHECK; + } + ACE_CATCHALL + { + } + ACE_ENDTRY; } } |