diff options
author | parsons <parsons@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 2003-01-23 16:57:21 +0000 |
---|---|---|
committer | parsons <parsons@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 2003-01-23 16:57:21 +0000 |
commit | f5fb08140b22f0ce860941c8a01ed50e4e79ca3b (patch) | |
tree | 0839a5bc288bf6f7dcfc46cae2df737165c8e36b | |
parent | 41e25c04935078bd5eb0e5786234cfa4e6345bf9 (diff) | |
download | ATCD-f5fb08140b22f0ce860941c8a01ed50e4e79ca3b.tar.gz |
ChangeLogTag: Thu Jan 23 10:54:23 2003 Jeff Parsons <j.parsons@vanderbilt.edu>
-rw-r--r-- | TAO/ChangeLog | 7 | ||||
-rw-r--r-- | TAO/tao/DynamicAny/DynCommon.cpp | 8 |
2 files changed, 11 insertions, 4 deletions
diff --git a/TAO/ChangeLog b/TAO/ChangeLog index 6800115a172..b4c0a1398b6 100644 --- a/TAO/ChangeLog +++ b/TAO/ChangeLog @@ -1,3 +1,10 @@ +Thu Jan 23 10:54:23 2003 Jeff Parsons <j.parsons@vanderbilt.edu> + + * tao/DynamicAny/DynCommon.cpp (get_reference): + + Fixed memory leak. Thanks to Grigory <grig@plesk.com> for + reporting the bug. + Wed Jan 22 14:56:22 2003 Balachandran Natarajan <bala@isis-server.isis.vanderbilt.edu> * tao/Invocation.cpp (invoke_i): Unbind the dispatcher instead of diff --git a/TAO/tao/DynamicAny/DynCommon.cpp b/TAO/tao/DynamicAny/DynCommon.cpp index 7b78edb5cc3..d240779b1d1 100644 --- a/TAO/tao/DynamicAny/DynCommon.cpp +++ b/TAO/tao/DynamicAny/DynCommon.cpp @@ -1156,21 +1156,21 @@ TAO_DynCommon::get_reference (ACE_ENV_SINGLE_ARG_DECL) if (this->has_components_) { DynamicAny::DynAny_var cc = this->check_component (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK_RETURN (0); + ACE_CHECK_RETURN (CORBA::Object::_nil ()); return cc->get_reference (ACE_ENV_SINGLE_ARG_PARAMETER); } else { - CORBA::Object_ptr retval; + CORBA::Object_var retval; - if ((this->any_ >>= CORBA::Any::to_object (retval)) == 0) + if ((this->any_ >>= CORBA::Any::to_object (retval.inout ())) == 0) { ACE_THROW_RETURN (DynamicAny::DynAny::TypeMismatch (), CORBA::Object::_nil ()); } - return CORBA::Object::_duplicate (retval); + return retval._retn (); } } |