diff options
author | parsons <parsons@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 2000-03-02 18:54:04 +0000 |
---|---|---|
committer | parsons <parsons@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 2000-03-02 18:54:04 +0000 |
commit | 4ec7debed79b57f1c83c2be066870dd6a3775697 (patch) | |
tree | db41b3c82cdc963bfffd26172508f4d4fa358e90 | |
parent | 9621f9c4d300f0cc50e17288e8186cda87c6d098 (diff) | |
download | ATCD-4ec7debed79b57f1c83c2be066870dd6a3775697.tar.gz |
More robustness to the >>= operator
-rw-r--r-- | TAO/TAO_IDL/be/be_visitor_interface/any_op_cs.cpp | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/TAO/TAO_IDL/be/be_visitor_interface/any_op_cs.cpp b/TAO/TAO_IDL/be/be_visitor_interface/any_op_cs.cpp index ac62ddfd2eb..09cc032fbd7 100644 --- a/TAO/TAO_IDL/be/be_visitor_interface/any_op_cs.cpp +++ b/TAO/TAO_IDL/be/be_visitor_interface/any_op_cs.cpp @@ -105,6 +105,7 @@ be_visitor_interface_any_op_cs::visit_interface (be_interface *node) << node->full_name () << "_ptr &_tao_elem)" << be_nl << "{" << be_idt_nl << "CORBA::Object_ptr *tmp = 0;" << be_nl + << "ACE_NEW_RETURN (tmp, CORBA::Object_ptr, 0);" << be_nl << "ACE_TRY_NEW_ENV" << be_nl << "{" << be_idt_nl << "_tao_elem = " << node->full_name () << "::_nil ();" << be_nl @@ -112,6 +113,7 @@ be_visitor_interface_any_op_cs::visit_interface (be_interface *node) << "if (!type->equivalent (" << node->tc_name () << ", ACE_TRY_ENV)) // not equal" << be_idt_nl << "{" << be_idt_nl + << "delete tmp;" << be_nl << "return 0;" << be_uidt_nl << "}" << be_uidt_nl << "ACE_TRY_CHECK;" << be_nl @@ -120,7 +122,6 @@ be_visitor_interface_any_op_cs::visit_interface (be_interface *node) << "_tao_any._tao_byte_order ()" << be_uidt_nl << ");" << be_uidt_nl << "CORBA::Object_var _tao_obj_var;" << be_nl - << "ACE_NEW_RETURN (tmp, CORBA::Object_ptr, 0);" << be_nl << "if (stream >> _tao_obj_var.out ())" << be_nl << "{" << be_idt_nl << "_tao_elem = " << node->full_name () @@ -137,16 +138,19 @@ be_visitor_interface_any_op_cs::visit_interface (be_interface *node) << "ACE_TRY_CHECK;" << be_nl << "return 1;" << be_uidt_nl << "}" << be_nl - << "// failure" << be_uidt_nl + << "else // failure" << be_nl + << "{" << be_idt_nl + << "delete tmp;" << be_uidt_nl + << "}" << be_uidt_nl << "}" << be_nl << "ACE_CATCHANY" << be_nl << "{" << be_idt_nl << "delete tmp;" << be_nl - << "_tao_elem = 0;" << be_nl + << "_tao_elem = " << node->full_name () << "::_nil ();" << be_nl << "return 0;" << be_uidt_nl << "}" << be_nl << "ACE_ENDTRY;" << be_nl - << "_tao_elem = 0;" << be_nl + << "_tao_elem = " << node->full_name () << "::_nil ();" << be_nl << "return 0;" << be_uidt_nl << "}\n\n"; |