diff options
author | nanbor <nanbor@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 1998-12-18 19:55:46 +0000 |
---|---|---|
committer | nanbor <nanbor@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 1998-12-18 19:55:46 +0000 |
commit | 819e6c8e92461bd341aae3a8643a408db7213d74 (patch) | |
tree | 2439f906a59fa17ba179bd5741490d36df974d24 | |
parent | 54a1542c0fa2aed18e204ee9ec32ad8f220decdb (diff) | |
download | ATCD-819e6c8e92461bd341aae3a8643a408db7213d74.tar.gz |
Any insertion/extraction code fixes.
-rw-r--r-- | TAO/TAO_IDL/be/be_visitor_array/any_op_cs.cpp | 14 | ||||
-rw-r--r-- | TAO/TAO_IDL/be/be_visitor_enum/any_op_cs.cpp | 2 | ||||
-rw-r--r-- | TAO/TAO_IDL/be/be_visitor_exception/any_op_cs.cpp | 14 | ||||
-rw-r--r-- | TAO/TAO_IDL/be/be_visitor_interface/any_op_cs.cpp | 14 | ||||
-rw-r--r-- | TAO/TAO_IDL/be/be_visitor_sequence/any_op_cs.cpp | 14 | ||||
-rw-r--r-- | TAO/TAO_IDL/be/be_visitor_structure/any_op_cs.cpp | 14 | ||||
-rw-r--r-- | TAO/TAO_IDL/be/be_visitor_union/any_op_cs.cpp | 14 |
7 files changed, 45 insertions, 41 deletions
diff --git a/TAO/TAO_IDL/be/be_visitor_array/any_op_cs.cpp b/TAO/TAO_IDL/be/be_visitor_array/any_op_cs.cpp index eccd0a1cc0d..4384d1d2471 100644 --- a/TAO/TAO_IDL/be/be_visitor_array/any_op_cs.cpp +++ b/TAO/TAO_IDL/be/be_visitor_array/any_op_cs.cpp @@ -83,9 +83,15 @@ be_visitor_array_any_op_cs::visit_array (be_array *node) << "TAO_CHECK_ENV;" << be_nl << "if (_tao_any.any_owns_data ())" << be_nl << "{" << be_idt_nl + << "_tao_elem = (" << node->name () << "_slice *)_tao_any.value ();" + << be_nl + << "return 1;" << be_uidt_nl + << "}" << be_nl + << "else" << be_nl // else Any does not own the data + << "{" << be_idt_nl << "_tao_elem.out () = " << node->name () << "_alloc ();" << be_nl << "if (!_tao_elem.in ()) return 0;" << be_nl - << "TAO_InputCDR stream ((ACE_Message_Block *)_tao_any.value ());" + << "TAO_InputCDR stream ((ACE_Message_Block *)_tao_any._tao_get_cdr ());" << be_nl << "if (stream.decode (" << node->tc_name () << ", _tao_elem.inout (), 0, TAO_TRY_ENV)" << be_nl @@ -96,12 +102,6 @@ be_visitor_array_any_op_cs::visit_array (be_array *node) << "return 1;" << be_uidt_nl << "}" << be_nl << "TAO_CHECK_ENV;" << be_uidt_nl - << "}" << be_nl - << "else" << be_nl // else Any does not own the data - << "{" << be_idt_nl - << "_tao_elem = (" << node->name () << "_slice *)_tao_any.value ();" - << be_nl - << "return 1;" << be_uidt_nl << "}" << be_uidt_nl << "}" << be_nl << "TAO_CATCHANY" << be_nl diff --git a/TAO/TAO_IDL/be/be_visitor_enum/any_op_cs.cpp b/TAO/TAO_IDL/be/be_visitor_enum/any_op_cs.cpp index 55161754a49..0614d2cc1da 100644 --- a/TAO/TAO_IDL/be/be_visitor_enum/any_op_cs.cpp +++ b/TAO/TAO_IDL/be/be_visitor_enum/any_op_cs.cpp @@ -83,7 +83,7 @@ be_visitor_enum_any_op_cs::visit_enum (be_enum *node) << "if (!type->equal (" << node->tc_name () << ", TAO_TRY_ENV)) return 0; // not equal" << be_nl << "TAO_CHECK_ENV;" << be_nl - << "TAO_InputCDR stream ((ACE_Message_Block *)_tao_any.value ());" + << "TAO_InputCDR stream ((ACE_Message_Block *)_tao_any._tao_get_cdr ());" << be_nl << "if (stream.decode (" << node->tc_name () << ", &_tao_elem, 0, TAO_TRY_ENV)" << be_nl diff --git a/TAO/TAO_IDL/be/be_visitor_exception/any_op_cs.cpp b/TAO/TAO_IDL/be/be_visitor_exception/any_op_cs.cpp index 9ffd6dc882c..2170bdca554 100644 --- a/TAO/TAO_IDL/be/be_visitor_exception/any_op_cs.cpp +++ b/TAO/TAO_IDL/be/be_visitor_exception/any_op_cs.cpp @@ -96,9 +96,15 @@ be_visitor_exception_any_op_cs::visit_exception (be_exception *node) << "TAO_CHECK_ENV;" << be_nl << "if (_tao_any.any_owns_data ())" << be_nl << "{" << be_idt_nl + << "_tao_elem = (" << node->name () << " *)_tao_any.value ();" + << be_nl + << "return 1;" << be_uidt_nl + << "}" << be_nl + << "else" << be_nl // else any does not own the data + << "{" << be_idt_nl << "ACE_NEW_RETURN (_tao_elem, " << node->name () << ", 0);" << be_nl - << "TAO_InputCDR stream ((ACE_Message_Block *)_tao_any.value ());" + << "TAO_InputCDR stream ((ACE_Message_Block *)_tao_any._tao_get_cdr ());" << be_nl << "if (stream.decode (" << node->tc_name () << ", _tao_elem, 0, TAO_TRY_ENV)" << be_nl @@ -113,12 +119,6 @@ be_visitor_exception_any_op_cs::visit_exception (be_exception *node) << "{" << be_idt_nl << "delete _tao_elem;" << be_uidt_nl << "}" << be_uidt_nl - << "}" << be_nl - << "else" << be_nl // else any does not own the data - << "{" << be_idt_nl - << "_tao_elem = (" << node->name () << " *)_tao_any.value ();" - << be_nl - << "return 1;" << be_uidt_nl << "}" << be_uidt_nl << "}" << be_nl << "TAO_CATCHANY" << be_nl 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 640c9c1e75f..d773bde03fd 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 @@ -1,5 +1,5 @@ // -// $Id$ +// $id: any_op_cs.cpp,v 1.12 1998/10/30 19:46:55 levine Exp $ // // ============================================================================ @@ -77,6 +77,7 @@ be_visitor_interface_any_op_cs::visit_interface (be_interface *node) *os << "CORBA::Boolean operator>>= (const CORBA::Any &_tao_any, " << node->name () << "_ptr &_tao_elem)" << be_nl << "{" << be_idt_nl + << "CORBA::Object_ptr *tmp = 0;" << be_nl << "TAO_TRY" << be_nl << "{" << be_idt_nl << "_tao_elem = " << node->name () << "::_nil ();" << be_nl @@ -84,19 +85,21 @@ be_visitor_interface_any_op_cs::visit_interface (be_interface *node) << "if (!type->equal (" << node->tc_name () << ", TAO_TRY_ENV)) return 0; // not equal" << be_nl << "TAO_CHECK_ENV;" << be_nl - << "TAO_InputCDR stream ((ACE_Message_Block *)_tao_any.value ());" + << "TAO_InputCDR stream ((ACE_Message_Block *)_tao_any._tao_get_cdr ());" << be_nl << "CORBA::Object_var _tao_obj_var;" << be_nl + << "ACE_NEW_RETURN (tmp, CORBA::Object_ptr, 0);" << be_nl << "if (stream.decode (" << node->tc_name () << ", &_tao_obj_var.out (), 0, TAO_TRY_ENV)" << be_nl - << " == CORBA::TypeCode::TRAVERSE_CONTINUE)" << be_nl + << " == CORBA::TypeCode::TRAVERSE_CONTINUE)" << be_nl << "{" << be_idt_nl << "_tao_elem = " << node->name () << "::_narrow (_tao_obj_var.in (), TAO_TRY_ENV);" << be_nl << "TAO_CHECK_ENV;" << be_nl - << "_tao_obj_var = _tao_elem;" << be_nl + << "*tmp = (CORBA::Object_ptr) _tao_elem; // any owns the object" + << be_nl << "((CORBA::Any *)&_tao_any)->replace (" - << node->tc_name () << ", &_tao_obj_var.inout (), 1, TAO_TRY_ENV);" << be_nl + << node->tc_name () << ", tmp, 1, TAO_TRY_ENV);" << be_nl << "TAO_CHECK_ENV;" << be_nl << "return 1;" << be_uidt_nl << "}" << be_nl @@ -104,6 +107,7 @@ be_visitor_interface_any_op_cs::visit_interface (be_interface *node) << "}" << be_nl << "TAO_CATCHANY" << be_nl << "{" << be_idt_nl + << "delete tmp;" << be_nl << "return 0;" << be_uidt_nl << "}" << be_nl << "TAO_ENDTRY;" << be_nl diff --git a/TAO/TAO_IDL/be/be_visitor_sequence/any_op_cs.cpp b/TAO/TAO_IDL/be/be_visitor_sequence/any_op_cs.cpp index 9c89bbf41e4..29e8467536d 100644 --- a/TAO/TAO_IDL/be/be_visitor_sequence/any_op_cs.cpp +++ b/TAO/TAO_IDL/be/be_visitor_sequence/any_op_cs.cpp @@ -99,9 +99,15 @@ be_visitor_sequence_any_op_cs::visit_sequence (be_sequence *node) << "TAO_CHECK_ENV;" << be_nl << "if (_tao_any.any_owns_data ())" << be_nl << "{" << be_idt_nl + << "_tao_elem = (" << node->name () << " *)_tao_any.value ();" + << be_nl + << "return 1;" << be_uidt_nl + << "}" << be_nl + << "else" << be_nl // else any does not own the data + << "{" << be_idt_nl << "ACE_NEW_RETURN (_tao_elem, " << node->name () << ", 0);" << be_nl - << "TAO_InputCDR stream ((ACE_Message_Block *)_tao_any.value ());" + << "TAO_InputCDR stream ((ACE_Message_Block *)_tao_any._tao_get_cdr ());" << be_nl << "if (stream.decode (" << node->tc_name () << ", _tao_elem, 0, TAO_TRY_ENV)" << be_nl @@ -117,12 +123,6 @@ be_visitor_sequence_any_op_cs::visit_sequence (be_sequence *node) << "{" << be_idt_nl << "delete _tao_elem;" << be_uidt_nl << "}" << be_uidt_nl - << "}" << be_nl - << "else" << be_nl // else any does not own the data - << "{" << be_idt_nl - << "_tao_elem = (" << node->name () << " *)_tao_any.value ();" - << be_nl - << "return 1;" << be_uidt_nl << "}" << be_uidt_nl << "}" << be_nl << "TAO_CATCHANY" << be_nl diff --git a/TAO/TAO_IDL/be/be_visitor_structure/any_op_cs.cpp b/TAO/TAO_IDL/be/be_visitor_structure/any_op_cs.cpp index 1f3d4f68f62..dee524518eb 100644 --- a/TAO/TAO_IDL/be/be_visitor_structure/any_op_cs.cpp +++ b/TAO/TAO_IDL/be/be_visitor_structure/any_op_cs.cpp @@ -96,9 +96,15 @@ be_visitor_structure_any_op_cs::visit_structure (be_structure *node) << "TAO_CHECK_ENV;" << be_nl << "if (_tao_any.any_owns_data ())" << be_nl << "{" << be_idt_nl + << "_tao_elem = (" << node->name () << " *)_tao_any.value ();" + << be_nl + << "return 1;" << be_nl + << "}" << be_uidt_nl + << "else" << be_nl // else any does not own the data + << "{" << be_idt_nl << "ACE_NEW_RETURN (_tao_elem, " << node->name () << ", 0);" << be_nl - << "TAO_InputCDR stream ((ACE_Message_Block *)_tao_any.value ());" + << "TAO_InputCDR stream ((ACE_Message_Block *)_tao_any._tao_get_cdr ());" << be_nl << "if (stream.decode (" << node->tc_name () << ", _tao_elem, 0, TAO_TRY_ENV)" << be_nl @@ -113,12 +119,6 @@ be_visitor_structure_any_op_cs::visit_structure (be_structure *node) << "{" << be_idt_nl << "delete _tao_elem;" << be_uidt_nl << "}" << be_uidt_nl - << "}" << be_nl - << "else" << be_nl // else any does not own the data - << "{" << be_idt_nl - << "_tao_elem = (" << node->name () << " *)_tao_any.value ();" - << be_nl - << "return 1;" << be_uidt_nl << "}" << be_uidt_nl << "}" << be_nl << "TAO_CATCHANY" << be_nl diff --git a/TAO/TAO_IDL/be/be_visitor_union/any_op_cs.cpp b/TAO/TAO_IDL/be/be_visitor_union/any_op_cs.cpp index 7aa0d568376..c2c762b19ef 100644 --- a/TAO/TAO_IDL/be/be_visitor_union/any_op_cs.cpp +++ b/TAO/TAO_IDL/be/be_visitor_union/any_op_cs.cpp @@ -95,9 +95,15 @@ be_visitor_union_any_op_cs::visit_union (be_union *node) << "TAO_CHECK_ENV;" << be_nl << "if (_tao_any.any_owns_data ())" << be_nl << "{" << be_idt_nl + << "_tao_elem = (" << node->name () << " *)_tao_any.value ();" + << be_nl + << "return 1;" << be_uidt_nl + << "}" << be_nl + << "else" << be_nl // else any does not own the data + << "{" << be_idt_nl << "ACE_NEW_RETURN (_tao_elem, " << node->name () << ", 0);" << be_nl - << "TAO_InputCDR stream ((ACE_Message_Block *)_tao_any.value ());" + << "TAO_InputCDR stream ((ACE_Message_Block *)_tao_any._tao_get_cdr ());" << be_nl << "if (stream.decode (" << node->tc_name () << ", _tao_elem, 0, TAO_TRY_ENV)" << be_nl @@ -112,12 +118,6 @@ be_visitor_union_any_op_cs::visit_union (be_union *node) << "{" << be_idt_nl << "delete _tao_elem;" << be_uidt_nl << "}" << be_uidt_nl - << "}" << be_nl - << "else" << be_nl // else any does not own the data - << "{" << be_idt_nl - << "_tao_elem = (" << node->name () << " *)_tao_any.value ();" - << be_nl - << "return 1;" << be_uidt_nl << "}" << be_uidt_nl << "}" << be_nl << "TAO_CATCHANY" << be_nl |