summaryrefslogtreecommitdiff
path: root/TAO/TAO_IDL/be/be_visitor_exception.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'TAO/TAO_IDL/be/be_visitor_exception.cpp')
-rw-r--r--TAO/TAO_IDL/be/be_visitor_exception.cpp9
1 files changed, 7 insertions, 2 deletions
diff --git a/TAO/TAO_IDL/be/be_visitor_exception.cpp b/TAO/TAO_IDL/be/be_visitor_exception.cpp
index b0dfc14eada..5caa004b73b 100644
--- a/TAO/TAO_IDL/be/be_visitor_exception.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_exception.cpp
@@ -192,7 +192,7 @@ int be_visitor_exception_ch::visit_exception (be_exception *node)
if (node->is_nested ())
*os << "friend ";
*os << "void operator<<= (CORBA::Any &, " << node->local_name ()
- << "); // noncopying version" << be_nl;
+ << "*); // noncopying version" << be_nl;
if (node->is_nested ())
*os << "friend ";
*os << "CORBA::Boolean operator>>= (const CORBA::Any &, "
@@ -441,7 +441,12 @@ int be_visitor_exception_cs::visit_exception (be_exception *node)
<< "if (stream.decode (" << node->tc_name ()
<< ", &_tao_elem, 0, _tao_env)" << be_nl
<< " == CORBA::TypeCode::TRAVERSE_CONTINUE)" << be_nl
- << " return 1;" << be_nl
+ << "{" << be_idt_nl
+ << "((CORBA::Any *)&_tao_any)->replace (_tao_any.type (), "
+ << "_tao_elem, 1, _tao_env);"
+ << be_nl
+ << " return 1;" << be_uidt_nl
+ << "}" << be_nl
<< "else" << be_nl
<< " return 0;" << be_uidt_nl
<< "}\n\n";