diff options
author | parsons <parsons@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 2003-02-08 23:19:54 +0000 |
---|---|---|
committer | parsons <parsons@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 2003-02-08 23:19:54 +0000 |
commit | e9f08c10258eda047c9d64509fb0801f0c5412e0 (patch) | |
tree | 8447ad631683353b861a40ee08b0bd19dd6ab750 | |
parent | 4c6e52b4b68f8cefc75f7f540c0c7723b0511642 (diff) | |
download | ATCD-e9f08c10258eda047c9d64509fb0801f0c5412e0.tar.gz |
ChangeLogTag: Sat Feb 8 17:13:54 2003 Jeff Parsons <j.parsons@vanderbilt.edu>
-rw-r--r-- | TAO/ChangeLog | 13 | ||||
-rw-r--r-- | TAO/TAO_IDL/be/be_visitor_union/cdr_op_ci.cpp | 12 | ||||
-rw-r--r-- | TAO/TAO_IDL/be/be_visitor_union_branch/cdr_op_ci.cpp | 17 |
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: |