summaryrefslogtreecommitdiff
path: root/TAO/TAO_IDL/be/be_visitor_sequence/sequence_ci.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'TAO/TAO_IDL/be/be_visitor_sequence/sequence_ci.cpp')
-rw-r--r--TAO/TAO_IDL/be/be_visitor_sequence/sequence_ci.cpp94
1 files changed, 46 insertions, 48 deletions
diff --git a/TAO/TAO_IDL/be/be_visitor_sequence/sequence_ci.cpp b/TAO/TAO_IDL/be/be_visitor_sequence/sequence_ci.cpp
index c63264c6df9..54e6a1d3c44 100644
--- a/TAO/TAO_IDL/be/be_visitor_sequence/sequence_ci.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_sequence/sequence_ci.cpp
@@ -119,54 +119,53 @@ be_visitor_sequence_ci::instantiate_sequence (be_sequence *node)
// else
// inheriting from the right class is enough
break;
- case be_sequence::MNG_WSTRING: // sequence of strings
- if (!node->unbounded ())
- this->gen_bounded_wstr_sequence (node);
- // else
- // inheriting from the right class is enough
- break;
default: // not a managed type
if (node->unbounded ())
- {
- // TAO provides extensions for octet sequences, first find out
- // if the base type is an octet (or an alias for octet)
- be_predefined_type *predef = 0;
- if (bt->base_node_type () == AST_Type::NT_pre_defined)
- {
- be_typedef* alias =
- be_typedef::narrow_from_decl (bt);
-
- if (alias == 0)
- {
- predef =
- be_predefined_type::narrow_from_decl (bt);
- }
- else
- {
- predef =
- be_predefined_type::narrow_from_decl (
- alias->primitive_base_type ()
- );
- }
- }
- if (predef != 0)
- {
- if (predef->pt() != AST_PredefinedType::PT_octet)
- {
- this->gen_unbounded_sequence (node);
- }
- }
- else
- {
- this->gen_unbounded_sequence (node);
- }
- }
+ {
+#if 1
+ // TAO provides extensions for octet sequences, first find out
+ // if the base type is an octet (or an alias for octet)
+ be_predefined_type *predef = 0;
+ if (bt->base_node_type () == AST_Type::NT_pre_defined)
+ {
+ be_typedef* alias =
+ be_typedef::narrow_from_decl (bt);
+
+ if (alias == 0)
+ {
+ predef =
+ be_predefined_type::narrow_from_decl (bt);
+ }
+ else
+ {
+ predef = be_predefined_type::narrow_from_decl
+ (alias->primitive_base_type ());
+ }
+ }
+ if (predef != 0)
+ {
+ if (predef->pt() != AST_PredefinedType::PT_octet)
+ this->gen_unbounded_sequence (node);
+ }
+ else
+ this->gen_unbounded_sequence (node);
+#else
+ // @@ This needs to be fixed. (Michael)
+ be_predefined_type * bpt =
+ be_predefined_type::narrow_from_decl (node->base_type());
+ if (bpt)
+ {
+ if (bpt->pt() != AST_PredefinedType::PT_octet)
+ this->gen_unbounded_sequence (node);
+ }
+ else
+ this->gen_unbounded_sequence (node);
+#endif
+ }
else
- {
- this->gen_bounded_sequence (node);
- }
+ this->gen_bounded_sequence (node);
break;
- } // end of switch
+ }
return 0;
}
@@ -227,8 +226,8 @@ be_visitor_sequence_ci::gen_var_impl (be_sequence *node)
" &p) // copy constructor" << be_nl;
*os << "{\n";
os->incr_indent ();
- *os << "if (p.ptr_)" << be_idt_nl;
- *os << "ACE_NEW (this->ptr_, " << node->name () << " (*p.ptr_));" << be_uidt_nl;
+ *os << "if (p.ptr_)" << be_nl;
+ *os << " this->ptr_ = new " << node->name () << "(*p.ptr_);" << be_nl;
*os << "else" << be_nl;
*os << " this->ptr_ = 0;\n";
os->decr_indent ();
@@ -268,8 +267,7 @@ be_visitor_sequence_ci::gen_var_impl (be_sequence *node)
*os << "{\n";
os->incr_indent ();
*os << "delete this->ptr_;" << be_nl;
- *os << "ACE_NEW_RETURN (this->ptr_, "
- << node->name () << " (*p.ptr_), *this);\n";
+ *os << "this->ptr_ = new " << node->name () << " (*p.ptr_);\n";
os->decr_indent ();
*os << "}" << be_nl;
*os << "return *this;\n";