diff options
Diffstat (limited to 'TAO/tao')
-rw-r--r-- | TAO/tao/GIOP_Message_Generator_Parser_10.cpp | 6 | ||||
-rw-r--r-- | TAO/tao/IORManipulation/IORC.cpp | 40 |
2 files changed, 35 insertions, 11 deletions
diff --git a/TAO/tao/GIOP_Message_Generator_Parser_10.cpp b/TAO/tao/GIOP_Message_Generator_Parser_10.cpp index 4d13a5593ae..9fe9c00df50 100644 --- a/TAO/tao/GIOP_Message_Generator_Parser_10.cpp +++ b/TAO/tao/GIOP_Message_Generator_Parser_10.cpp @@ -117,7 +117,7 @@ int TAO_GIOP_Message_Generator_Parser_10::write_reply_header ( TAO_OutputCDR &output, TAO_Pluggable_Reply_Params &reply, - CORBA::Environment &ACE_TRY_ENV + CORBA::Environment &env ) ACE_THROW_SPEC ((CORBA::SystemException)) { @@ -219,6 +219,7 @@ TAO_GIOP_Message_Generator_Parser_10::write_reply_header ( } else { + CORBA::Environment &ACE_TRY_ENV = env; // <target> can only have the values above ACE_THROW_RETURN (CORBA::MARSHAL (), 0); @@ -241,7 +242,8 @@ TAO_GIOP_Message_Generator_Parser_10::write_reply_header ( this->marshal_reply_status (output, reply); - ACE_UNUSED_ARG (ACE_TRY_ENV); + ACE_UNUSED_ARG (env); + return 1; } diff --git a/TAO/tao/IORManipulation/IORC.cpp b/TAO/tao/IORManipulation/IORC.cpp index 261a0e650c2..d8acb2ed33a 100644 --- a/TAO/tao/IORManipulation/IORC.cpp +++ b/TAO/tao/IORManipulation/IORC.cpp @@ -685,6 +685,7 @@ TAO_IOP::TAO_IOR_Manipulation::_duplicate (TAO_IOR_Manipulation_ptr obj) { CORBA::Object **tmp = ACE_static_cast (CORBA::Object**, target); *tmp = CORBA::Object::_narrow (src, ACE_TRY_ENV); + ACE_CHECK; } CORBA_Object* @@ -806,11 +807,15 @@ CORBA::Boolean operator>>= (const CORBA::Any &_tao_any, const TAO_IOP::EmptyProf ACE_TRY_NEW_ENV { CORBA::TypeCode_var type = _tao_any.type (); - if (!type->equivalent (TAO_IOP::_tc_EmptyProfileList, ACE_TRY_ENV)) // not equal + int retval = + type->equivalent (TAO_IOP::_tc_EmptyProfileList, + ACE_TRY_ENV); + ACE_TRY_CHECK; + if (!retval) { return 0; } - ACE_TRY_CHECK; + if (_tao_any.any_owns_data ()) { _tao_elem = (TAO_IOP::EmptyProfileList *)_tao_any.value (); @@ -894,11 +899,14 @@ CORBA::Boolean operator>>= (const CORBA::Any &_tao_any, const TAO_IOP::NotFound ACE_TRY_NEW_ENV { CORBA::TypeCode_var type = _tao_any.type (); - if (!type->equivalent (TAO_IOP::_tc_NotFound, ACE_TRY_ENV)) // not equal + int retval = + type->equivalent (TAO_IOP::_tc_NotFound, ACE_TRY_ENV); + ACE_TRY_CHECK; + if (!retval) { return 0; } - ACE_TRY_CHECK; + if (_tao_any.any_owns_data ()) { _tao_elem = (TAO_IOP::NotFound *)_tao_any.value (); @@ -982,11 +990,16 @@ CORBA::Boolean operator>>= (const CORBA::Any &_tao_any, const TAO_IOP::Duplicate ACE_TRY_NEW_ENV { CORBA::TypeCode_var type = _tao_any.type (); - if (!type->equivalent (TAO_IOP::_tc_Duplicate, ACE_TRY_ENV)) // not equal + + int retval = + type->equivalent (TAO_IOP::_tc_Duplicate, ACE_TRY_ENV); + ACE_TRY_CHECK; + // not equal + if (!retval) { return 0; } - ACE_TRY_CHECK; + if (_tao_any.any_owns_data ()) { _tao_elem = (TAO_IOP::Duplicate *)_tao_any.value (); @@ -1070,11 +1083,15 @@ CORBA::Boolean operator>>= (const CORBA::Any &_tao_any, const TAO_IOP::Invalid_I ACE_TRY_NEW_ENV { CORBA::TypeCode_var type = _tao_any.type (); - if (!type->equivalent (TAO_IOP::_tc_Invalid_IOR, ACE_TRY_ENV)) // not equal + + int retval = type->equivalent (TAO_IOP::_tc_Invalid_IOR, + ACE_TRY_ENV); + ACE_TRY_CHECK; + if (!retval) { return 0; } - ACE_TRY_CHECK; + if (_tao_any.any_owns_data ()) { _tao_elem = (TAO_IOP::Invalid_IOR *)_tao_any.value (); @@ -1158,7 +1175,12 @@ CORBA::Boolean operator>>= (const CORBA::Any &_tao_any, const TAO_IOP::MultiProf ACE_TRY_NEW_ENV { CORBA::TypeCode_var type = _tao_any.type (); - if (!type->equivalent (TAO_IOP::_tc_MultiProfileList, ACE_TRY_ENV)) // not equal + + int retval = + type->equivalent (TAO_IOP::_tc_MultiProfileList, ACE_TRY_ENV); + ACE_TRY_CHECK; + + if (!retval) { return 0; } |