summaryrefslogtreecommitdiff
path: root/TAO/tao/Any_Special_Impl_T.cpp
diff options
context:
space:
mode:
authorparsons <parsons@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2003-08-14 20:38:55 +0000
committerparsons <parsons@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2003-08-14 20:38:55 +0000
commit8bd18d96d995d2a849a478ae8d00897da6387fc6 (patch)
tree5191a7ab4e0065c7d131bbf3719bd4380e76b973 /TAO/tao/Any_Special_Impl_T.cpp
parent032a4ae13d2dad8bc3890bc13b8b78d8673b553b (diff)
downloadATCD-8bd18d96d995d2a849a478ae8d00897da6387fc6.tar.gz
ChangeLogTag: Thu Aug 14 15:09:52 2003 Jeff Parsons <j.parsons@vanderbilt.edu>
Diffstat (limited to 'TAO/tao/Any_Special_Impl_T.cpp')
-rw-r--r--TAO/tao/Any_Special_Impl_T.cpp15
1 files changed, 8 insertions, 7 deletions
diff --git a/TAO/tao/Any_Special_Impl_T.cpp b/TAO/tao/Any_Special_Impl_T.cpp
index 92a2ef99c40..70c8a0bd61e 100644
--- a/TAO/tao/Any_Special_Impl_T.cpp
+++ b/TAO/tao/Any_Special_Impl_T.cpp
@@ -137,10 +137,13 @@ TAO::Any_Special_Impl_T<T, from_T, to_T>::extract (const CORBA::Any & any,
return 0;
}
+ CORBA::TCKind kind = tc->kind (ACE_ENV_SINGLE_ARG_PARAMETER);
+ ACE_TRY_CHECK;
+
TAO::Any_Special_Impl_T<T, from_T, to_T> *replacement = 0;
ACE_NEW_RETURN (replacement,
BOUNDED_TSTRING_ANY_IMPL (destructor,
- CORBA::TypeCode::_duplicate (tc),
+ tc,
0,
bound),
0);
@@ -157,11 +160,7 @@ TAO::Any_Special_Impl_T<T, from_T, to_T>::extract (const CORBA::Any & any,
TAO_DEF_GIOP_MAJOR,
TAO_DEF_GIOP_MINOR);
- CORBA::TCKind kind = tc->kind (ACE_ENV_SINGLE_ARG_PARAMETER);
- ACE_TRY_CHECK;
-
- impl->assign_translator (kind,
- &cdr);
+ impl->assign_translator (kind, &cdr);
CORBA::Boolean result = replacement->demarshal_value (cdr);
if (result == 1)
@@ -171,6 +170,9 @@ TAO::Any_Special_Impl_T<T, from_T, to_T>::extract (const CORBA::Any & any,
replacement_safety.release ();
return 1;
}
+
+ // Duplicated by Any_Impl base class constructor.
+ CORBA::release (tc);
}
ACE_CATCHANY
{
@@ -191,7 +193,6 @@ TAO::Any_Special_Impl_T<T, from_T, to_T>::free_value (void)
}
CORBA::release (this->type_);
- this->type_ = CORBA::TypeCode::_nil ();
this->value_ = 0;
}