diff options
author | parsons <parsons@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 2003-08-14 20:38:55 +0000 |
---|---|---|
committer | parsons <parsons@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 2003-08-14 20:38:55 +0000 |
commit | 8bd18d96d995d2a849a478ae8d00897da6387fc6 (patch) | |
tree | 5191a7ab4e0065c7d131bbf3719bd4380e76b973 /TAO/tao/Any_Special_Impl_T.cpp | |
parent | 032a4ae13d2dad8bc3890bc13b8b78d8673b553b (diff) | |
download | ATCD-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.cpp | 15 |
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; } |