diff options
Diffstat (limited to 'TAO/TAO_IDL/be/be_visitor_array/array_ch.cpp')
-rw-r--r-- | TAO/TAO_IDL/be/be_visitor_array/array_ch.cpp | 18 |
1 files changed, 15 insertions, 3 deletions
diff --git a/TAO/TAO_IDL/be/be_visitor_array/array_ch.cpp b/TAO/TAO_IDL/be/be_visitor_array/array_ch.cpp index 9923d6f7ee9..e965d27c1db 100644 --- a/TAO/TAO_IDL/be/be_visitor_array/array_ch.cpp +++ b/TAO/TAO_IDL/be/be_visitor_array/array_ch.cpp @@ -122,7 +122,7 @@ int be_visitor_array_ch::visit_array (be_array *node) } } - *os << be_nl << be_nl + *os << be_nl << be_nl << "typedef "; if (bt->accept (this) == -1) @@ -199,9 +199,9 @@ int be_visitor_array_ch::visit_array (be_array *node) } *os << ";"; - + *os << be_nl - << "struct " << anon_p << node->nested_type_name (scope, "_tag") + << "struct " << anon_p << node->nested_type_name (scope, "_tag") << " {};"; // No _var or _out class for an anonymous (non-typedef'd) array. @@ -307,6 +307,12 @@ int be_visitor_array_ch::visit_array (be_array *node) << "const "; *os << node->nested_type_name (scope, "_slice") << " *_tao_from" << be_uidt_nl + << ");" << be_uidt << be_nl; + *os << storage_class << "void" << be_nl + << node->nested_type_name (scope, "_zero") + << " (" << be_idt << be_idt_nl; + *os << node->nested_type_name (scope, "_slice") << " *_tao_slice" + << be_uidt_nl << ");" << be_uidt; } else @@ -339,6 +345,12 @@ int be_visitor_array_ch::visit_array (be_array *node) *os << node->nested_type_name (scope, "_slice", "_") << " *_tao_from" << be_uidt_nl << ");" << be_uidt; + *os << storage_class << "void" << be_nl + << node->nested_type_name (scope, "_zero", "_") + << " (" << be_idt << be_idt_nl; + *os << node->nested_type_name (scope, "_slice", "_") + << " *_tao_slice" << be_uidt_nl + << ");" << be_uidt; } // Generate the endif macro. |