summaryrefslogtreecommitdiff
path: root/TAO/TAO_IDL/be/be_visitor_sequence
diff options
context:
space:
mode:
authorsma <sma@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2005-09-13 10:28:42 +0000
committersma <sma@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2005-09-13 10:28:42 +0000
commitc2421f2dcdf4c7b57a370e315b60fc0d9145951b (patch)
treebe831a53187135584f02ea0dc177d02fb4ffac5e /TAO/TAO_IDL/be/be_visitor_sequence
parent4f6e5e4c32ad93ed63b02385f0874b9484064bab (diff)
downloadATCD-c2421f2dcdf4c7b57a370e315b60fc0d9145951b.tar.gz
ChangeLogTag: Tue Sep 13 10:30:00 UTC 2005 Simon Massey <sma@prismtech.com>
Diffstat (limited to 'TAO/TAO_IDL/be/be_visitor_sequence')
-rw-r--r--TAO/TAO_IDL/be/be_visitor_sequence/any_op_cs.cpp7
1 files changed, 6 insertions, 1 deletions
diff --git a/TAO/TAO_IDL/be/be_visitor_sequence/any_op_cs.cpp b/TAO/TAO_IDL/be/be_visitor_sequence/any_op_cs.cpp
index 577ca1ecc3d..a614ac55509 100644
--- a/TAO/TAO_IDL/be/be_visitor_sequence/any_op_cs.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_sequence/any_op_cs.cpp
@@ -89,13 +89,18 @@ be_visitor_sequence_any_op_cs::visit_sequence (be_sequence *node)
<< "const " << node->name () << " &_tao_elem" << be_uidt_nl
<< ")" << be_uidt_nl
<< "{" << be_idt_nl
+
+ << "if (0 == &_tao_elem) // Trying to de-reference NULL object" << be_idt_nl
+ << "_tao_any <<= static_cast<" << node->name () << " *>( 0 ); // Use non-copying insertion of a NULL" << be_uidt_nl
+ << "else" << be_idt_nl
+
<< "TAO::Any_Dual_Impl_T<" << node->name () << ">::insert_copy ("
<< be_idt << be_idt_nl
<< "_tao_any," << be_nl
<< node->name () << "::_tao_any_destructor," << be_nl
<< node->tc_name () << "," << be_nl
<< "_tao_elem" << be_uidt_nl
- << ");" << be_uidt << be_uidt_nl
+ << ");" << be_uidt << be_uidt << be_uidt_nl
<< "}" << be_nl << be_nl;
// Non-copying insertion.