diff options
Diffstat (limited to 'TAO/tao/Utils/Servant_Var.inl')
-rw-r--r-- | TAO/tao/Utils/Servant_Var.inl | 25 |
1 files changed, 15 insertions, 10 deletions
diff --git a/TAO/tao/Utils/Servant_Var.inl b/TAO/tao/Utils/Servant_Var.inl index 80138c6fae3..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; } } @@ -183,6 +186,8 @@ operator==(TAO::Utils::Servant_Var<X> const & x, return x.in() == y.in(); } +// -*- C++ -*- +// $Id$ template <class X, class Y> ACE_INLINE bool operator!=(TAO::Utils::Servant_Var<X> const & x, |