summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorparsons <parsons@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2003-02-08 23:19:54 +0000
committerparsons <parsons@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2003-02-08 23:19:54 +0000
commite9f08c10258eda047c9d64509fb0801f0c5412e0 (patch)
tree8447ad631683353b861a40ee08b0bd19dd6ab750
parent4c6e52b4b68f8cefc75f7f540c0c7723b0511642 (diff)
downloadATCD-e9f08c10258eda047c9d64509fb0801f0c5412e0.tar.gz
ChangeLogTag: Sat Feb 8 17:13:54 2003 Jeff Parsons <j.parsons@vanderbilt.edu>
-rw-r--r--TAO/ChangeLog13
-rw-r--r--TAO/TAO_IDL/be/be_visitor_union/cdr_op_ci.cpp12
-rw-r--r--TAO/TAO_IDL/be/be_visitor_union_branch/cdr_op_ci.cpp17
3 files changed, 34 insertions, 8 deletions
diff --git a/TAO/ChangeLog b/TAO/ChangeLog
index e0280d26df7..ce8e3811aa8 100644
--- a/TAO/ChangeLog
+++ b/TAO/ChangeLog
@@ -1,3 +1,16 @@
+Sat Feb 8 17:13:54 2003 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * TAO_IDL/be/be_visitor_union/cdr_op_ci.cpp:
+
+ Changed some generated CORBA_Anys to CORBA::Any.
+
+ * TAO_IDL/be/be_visitor_union_branch/cdr_op_ci.cpp:
+
+ When marshaling an interface union member, replaced a
+ generated call to the virtual marshal() method with a
+ call to the global <flat_name>_marshal() method, if
+ the interface is not yet defined when it is referenced.
+
Sat Feb 8 13:15:10 2003 Jeff Parsons <j.parsons@vanderbilt.edu>
* TAO_IDL/be/be_visitor_structure/structure.cpp:
diff --git a/TAO/TAO_IDL/be/be_visitor_union/cdr_op_ci.cpp b/TAO/TAO_IDL/be/be_visitor_union/cdr_op_ci.cpp
index 3d532e16da6..4311a2553a8 100644
--- a/TAO/TAO_IDL/be/be_visitor_union/cdr_op_ci.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_union/cdr_op_ci.cpp
@@ -81,17 +81,17 @@ be_visitor_union_cdr_op_ci::visit_union (be_union *node)
switch (node->udisc_type ())
{
case AST_Expression::EV_bool:
- *os << "CORBA_Any::from_boolean tmp (_tao_union._d ());" << be_nl
+ *os << "CORBA::Any::from_boolean tmp (_tao_union._d ());" << be_nl
<< "if ( !(strm << tmp) )" << be_idt_nl;
break;
case AST_Expression::EV_char:
- *os << "CORBA_Any::from_char tmp (_tao_union._d ());" << be_nl
+ *os << "CORBA::Any::from_char tmp (_tao_union._d ());" << be_nl
<< "if ( !(strm << tmp) )" << be_idt_nl;
break;
case AST_Expression::EV_wchar:
- *os << "CORBA_Any::from_wchar tmp (_tao_union._d ());" << be_nl
+ *os << "CORBA::Any::from_wchar tmp (_tao_union._d ());" << be_nl
<< "if ( !(strm << tmp) )" << be_idt_nl;
break;
@@ -152,17 +152,17 @@ be_visitor_union_cdr_op_ci::visit_union (be_union *node)
switch (node->udisc_type ())
{
case AST_Expression::EV_bool:
- *os << "CORBA_Any::to_boolean tmp (_tao_discriminant);" << be_nl
+ *os << "CORBA::Any::to_boolean tmp (_tao_discriminant);" << be_nl
<< "if ( !(strm >> tmp) )" << be_idt_nl;
break;
case AST_Expression::EV_char:
- *os << "CORBA_Any::to_char tmp (_tao_discriminant);" << be_nl
+ *os << "CORBA::Any::to_char tmp (_tao_discriminant);" << be_nl
<< "if ( !(strm >> tmp) )" << be_idt_nl;
break;
case AST_Expression::EV_wchar:
- *os << "CORBA_Any::to_wchar tmp (_tao_discriminant);" << be_nl
+ *os << "CORBA::Any::to_wchar tmp (_tao_discriminant);" << be_nl
<< "if ( !(strm >> tmp) )" << be_idt_nl;
break;
diff --git a/TAO/TAO_IDL/be/be_visitor_union_branch/cdr_op_ci.cpp b/TAO/TAO_IDL/be/be_visitor_union_branch/cdr_op_ci.cpp
index 5e36be4a49d..23a69059f84 100644
--- a/TAO/TAO_IDL/be/be_visitor_union_branch/cdr_op_ci.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_union_branch/cdr_op_ci.cpp
@@ -305,8 +305,21 @@ be_visitor_union_branch_cdr_op_ci::visit_interface (be_interface *node)
break;
case TAO_CodeGen::TAO_CDR_OUTPUT:
- *os << "result = _tao_union."
- << f->local_name () << " ()->marshal (strm);";
+ if (node->is_defined ())
+ {
+ *os << "result = _tao_union."
+ << f->local_name () << " ()->marshal (strm);";
+ }
+ else
+ {
+ *os << "result =" << be_idt_nl
+ << "tao_" << node->flat_name () << "_marshal ("
+ << be_idt << be_idt_nl
+ << "_tao_union." << f->local_name () << " ()," << be_nl
+ << "strm" << be_uidt_nl
+ << ");" << be_uidt << be_uidt;
+ }
+
break;
case TAO_CodeGen::TAO_CDR_SCOPE: