summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorparsons <parsons@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2002-07-23 00:16:28 +0000
committerparsons <parsons@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2002-07-23 00:16:28 +0000
commit63627c578762afb06606b5f5e79fedafadeb9357 (patch)
tree6f8eb2c8ba855bf11c310d935accb861b6f5dfc5
parent520ec68608a1f7d4382d8e9360449453a33c433e (diff)
downloadATCD-63627c578762afb06606b5f5e79fedafadeb9357.tar.gz
ChangeLogTag: Mon Jul 22 19:12:20 2002 Jeff Parsons <parsons@cs.wustl.edu>
-rw-r--r--TAO/ChangeLog11
-rw-r--r--TAO/TAO_IDL/be/be_visitor_field/cdr_op_ci.cpp26
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 () << "))";