summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorbala <balanatarajan@users.noreply.github.com>2002-11-02 17:05:31 +0000
committerbala <balanatarajan@users.noreply.github.com>2002-11-02 17:05:31 +0000
commit3cfc84207c523a11b7b17aff9830e77dabe436e9 (patch)
tree5c0f787453a1524ff3759095bbf8364fbf18bf6a
parent9e0b7ddfc88af97a796221276ece04be18256f83 (diff)
downloadATCD-3cfc84207c523a11b7b17aff9830e77dabe436e9.tar.gz
ChangeLogTag: Sat Nov 2 10:48:46 2002 Balachandran Natarajan <bala@isis-server.isis.vanderbilt.edu>
-rw-r--r--TAO/ChangeLog6
-rw-r--r--TAO/tao/Utils/Servant_Var.h3
-rw-r--r--TAO/tao/Utils/Servant_Var.inl23
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;
}
}