diff options
author | parsons <parsons@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 2002-07-23 00:16:28 +0000 |
---|---|---|
committer | parsons <parsons@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 2002-07-23 00:16:28 +0000 |
commit | 63627c578762afb06606b5f5e79fedafadeb9357 (patch) | |
tree | 6f8eb2c8ba855bf11c310d935accb861b6f5dfc5 | |
parent | 520ec68608a1f7d4382d8e9360449453a33c433e (diff) | |
download | ATCD-63627c578762afb06606b5f5e79fedafadeb9357.tar.gz |
ChangeLogTag: Mon Jul 22 19:12:20 2002 Jeff Parsons <parsons@cs.wustl.edu>
-rw-r--r-- | TAO/ChangeLog | 11 | ||||
-rw-r--r-- | TAO/TAO_IDL/be/be_visitor_field/cdr_op_ci.cpp | 26 |
2 files changed, 25 insertions, 12 deletions
diff --git a/TAO/ChangeLog b/TAO/ChangeLog index bc2ae1921f4..79a8fc9a485 100644 --- a/TAO/ChangeLog +++ b/TAO/ChangeLog @@ -1,3 +1,14 @@ +Mon Jul 22 19:12:20 2002 Jeff Parsons <parsons@cs.wustl.edu> + + * TAO_IDL/be/be_visitor_field/cdr_op_ci.cpp: + + Fixed a previous change (probably made by me) that + caused incorrect code generation for the CDR + insertion/extraction of a CORBA::Object + when it appears as a struct/union/exception member. + Thanks to Johnny Willemsen <jwillemsen@remedy.nl> for + pointing out the resulting build errors. + Mon Jul 22 18:25:52 2002 Jeff Parsons <parsons@cs.wustl.edu> * TAO_IDL/be/be_visitor_sequence/cdr_op_cs.cpp: diff --git a/TAO/TAO_IDL/be/be_visitor_field/cdr_op_ci.cpp b/TAO/TAO_IDL/be/be_visitor_field/cdr_op_ci.cpp index f98fbe7918e..eebc4b7fb86 100644 --- a/TAO/TAO_IDL/be/be_visitor_field/cdr_op_ci.cpp +++ b/TAO/TAO_IDL/be/be_visitor_field/cdr_op_ci.cpp @@ -459,33 +459,35 @@ be_visitor_field_cdr_op_ci::visit_predefined_type (be_predefined_type *node) -1); } + AST_PredefinedType::PredefinedType pt = node->pt (); + // Check what is the code generations substate. Are we generating code for // the in/out operators for our parent or for us? switch (this->ctx_->sub_state ()) { case TAO_CodeGen::TAO_CDR_INPUT: - // Is a psuedo object. - if (node->pt () == AST_PredefinedType::PT_pseudo) + if (pt == AST_PredefinedType::PT_pseudo + || pt == AST_PredefinedType::PT_object) { *os << "(strm >> _tao_aggregate." << f->local_name () << ".out ())"; } - else if (node->pt () == AST_PredefinedType::PT_char) + else if (pt == AST_PredefinedType::PT_char) { *os << "(strm >> CORBA::Any::to_char (_tao_aggregate." << f->local_name () << "))"; } - else if (node->pt () == AST_PredefinedType::PT_wchar) + else if (pt == AST_PredefinedType::PT_wchar) { *os << "(strm >> CORBA::Any::to_wchar (_tao_aggregate." << f->local_name () << "))"; } - else if (node->pt () == AST_PredefinedType::PT_octet) + else if (pt == AST_PredefinedType::PT_octet) { *os << "(strm >> CORBA::Any::to_octet (_tao_aggregate." << f->local_name () << "))"; } - else if (node->pt () == AST_PredefinedType::PT_boolean) + else if (pt == AST_PredefinedType::PT_boolean) { *os << "(strm >> CORBA::Any::to_boolean (_tao_aggregate." << f->local_name () << "))"; @@ -496,27 +498,27 @@ be_visitor_field_cdr_op_ci::visit_predefined_type (be_predefined_type *node) } break; case TAO_CodeGen::TAO_CDR_OUTPUT: - // Is a psuedo object. - if (node->pt () == AST_PredefinedType::PT_pseudo) + if (pt == AST_PredefinedType::PT_pseudo + || pt == AST_PredefinedType::PT_object) { *os << "(strm << _tao_aggregate." << f->local_name () << ".in ())"; } - else if (node->pt () == AST_PredefinedType::PT_char) + else if (pt == AST_PredefinedType::PT_char) { *os << "(strm << CORBA::Any::from_char (_tao_aggregate." << f->local_name () << "))"; } - else if (node->pt () == AST_PredefinedType::PT_wchar) + else if (pt == AST_PredefinedType::PT_wchar) { *os << "(strm << CORBA::Any::from_wchar (_tao_aggregate." << f->local_name () << "))"; } - else if (node->pt () == AST_PredefinedType::PT_octet) + else if (pt == AST_PredefinedType::PT_octet) { *os << "(strm << CORBA::Any::from_octet (_tao_aggregate." << f->local_name () << "))"; } - else if (node->pt () == AST_PredefinedType::PT_boolean) + else if (pt == AST_PredefinedType::PT_boolean) { *os << "(strm << CORBA::Any::from_boolean (_tao_aggregate." << f->local_name () << "))"; |