diff options
-rw-r--r-- | TAO/ChangeLog | 9 | ||||
-rw-r--r-- | TAO/TAO_IDL/be/be_visitor_sequence/cdr_op_cs.cpp | 17 |
2 files changed, 25 insertions, 1 deletions
diff --git a/TAO/ChangeLog b/TAO/ChangeLog index 9c343381053..f62922f3712 100644 --- a/TAO/ChangeLog +++ b/TAO/ChangeLog @@ -1,3 +1,12 @@ +Tue Jun 10 10:05:34 2003 Jeff Parsons <j.parsons@vanderbilt.edu> + + * TAO_IDL/be/be_visitor_sequence/cdr_op_cs.cpp (visit_node): + + Added fix to visitor logic for CDR input that was overlooked + when I added the same fix for CDR output in + + Sun Jun 8 13:39:39 2003 Jeff Parsons <j.parsons@vanderbilt.edu> + Tue Jun 10 09:33:41 2003 Jeff Parsons <j.parsons@vanderbilt.edu> * orbsvcs\orbsvcs\IFRService\ComponentDef_i.cpp: diff --git a/TAO/TAO_IDL/be/be_visitor_sequence/cdr_op_cs.cpp b/TAO/TAO_IDL/be/be_visitor_sequence/cdr_op_cs.cpp index 583ea652251..5befc431aba 100644 --- a/TAO/TAO_IDL/be/be_visitor_sequence/cdr_op_cs.cpp +++ b/TAO/TAO_IDL/be/be_visitor_sequence/cdr_op_cs.cpp @@ -124,6 +124,7 @@ be_visitor_sequence_cdr_op_cs::visit_sequence (be_sequence *node) << be_nl << be_nl; *os << "if (strm << _tao_seq_len)" << be_idt_nl << "{" << be_idt_nl; + // Now encode the sequence elements. *os << "// Encode all elements." << be_nl; @@ -232,7 +233,21 @@ be_visitor_sequence_cdr_op_cs::visit_sequence (be_sequence *node) *os << "// Retrieve all the elements." << be_nl; - this->visit_node (bt); + if (bt->node_type () == AST_Decl::NT_sequence) + { + this->visit_node (node); + } + else + { + if (bt->accept (this) == -1) + { + ACE_ERROR_RETURN ((LM_ERROR, + "be_visitor_sequence_cdr_op_cs::" + "visit_sequence - " + "Base type codegen failed\n"), + -1); + } + } if (expr->ev ()->u.ulval > 0) { |