summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorOssama Othman <ossama-othman@users.noreply.github.com>2005-05-07 04:31:06 +0000
committerOssama Othman <ossama-othman@users.noreply.github.com>2005-05-07 04:31:06 +0000
commitd831cfcfe729e7b12d3d2a94b058b732363f4e83 (patch)
tree09d7dff69db2c9e62a373a72ae99cfe51ac6f376
parent1efddae7e9b1c8db189b04b5c1ead3485cc777a8 (diff)
downloadATCD-d831cfcfe729e7b12d3d2a94b058b732363f4e83.tar.gz
ChangeLogTag:Fri May 6 18:28:11 2005 Ossama Othman <ossama@dre.vanderbilt.edu>
-rw-r--r--TAO/ChangeLog32
-rw-r--r--TAO/TAO_IDL/be/be_codegen.cpp10
-rw-r--r--TAO/TAO_IDL/be/be_visitor_typecode/struct_typecode.cpp43
-rw-r--r--TAO/TAO_IDL/be/be_visitor_typecode/typecode_defn.cpp68
-rw-r--r--TAO/TAO_IDL/be/be_visitor_typecode/union_typecode.cpp43
-rw-r--r--TAO/TAO_IDL/be/be_visitor_typecode/value_typecode.cpp46
-rw-r--r--TAO/TAO_IDL/be_include/be_visitor_typecode/struct_typecode.h7
-rw-r--r--TAO/TAO_IDL/be_include/be_visitor_typecode/typecode_defn.h7
-rw-r--r--TAO/TAO_IDL/be_include/be_visitor_typecode/union_typecode.h3
-rw-r--r--TAO/TAO_IDL/be_include/be_visitor_typecode/value_typecode.h3
-rw-r--r--TAO/TAO_IDL/include/idl_global.h1
-rw-r--r--TAO/TAO_IDL/util/utl_global.cpp1
-rw-r--r--TAO/tao/Recursive_Type_TypeCode.cpp4
-rw-r--r--TAO/tao/Recursive_Type_TypeCode.h15
-rw-r--r--TAO/tao/Recursive_Type_TypeCode.inl8
15 files changed, 221 insertions, 70 deletions
diff --git a/TAO/ChangeLog b/TAO/ChangeLog
index e0cbeb9c336..5efd27af1e8 100644
--- a/TAO/ChangeLog
+++ b/TAO/ChangeLog
@@ -1,3 +1,35 @@
+Fri May 6 18:28:11 2005 Ossama Othman <ossama@dre.vanderbilt.edu>
+
+ * TAO_IDL/be/be_codegen.cpp:
+
+ Generate include directive for "tao/Recursive_Type_TypeCode.h"
+ if any struct, union or valuetype is seen.
+
+ * TAO_IDL/be/be_visitor_typecode/struct_typecode.cpp:
+ * TAO_IDL/be/be_visitor_typecode/typecode_defn.cpp:
+ * TAO_IDL/be/be_visitor_typecode/union_typecode.cpp:
+ * TAO_IDL/be/be_visitor_typecode/value_typecode.cpp:
+ * TAO_IDL/be_include/be_visitor_typecode/struct_typecode.h:
+ * TAO_IDL/be_include/be_visitor_typecode/typecode_defn.h:
+ * TAO_IDL/be_include/be_visitor_typecode/union_typecode.h:
+ * TAO_IDL/be_include/be_visitor_typecode/value_typecode.h:
+
+ Added recursive type TypeCode support.
+
+ * TAO_IDL/include/idl_global.h:
+ * TAO_IDL/util/utl_global.cpp:
+
+ Added new "recursive_type_seen_" flag for use in determining
+ whether Recursive_Type_TypeCode.h header should be included.
+
+ * tao/Recursive_Type_TypeCode.cpp:
+ * tao/Recursive_Type_TypeCode.h:
+ * tao/Recursive_Type_TypeCode.inl:
+
+ Added missing include directives.
+
+ Fixed syntax errors.
+
Fri May 6 13:18:23 2005 Ossama Othman <ossama@dre.vanderbilt.edu>
* tao/TypeCode_Case.inl:
diff --git a/TAO/TAO_IDL/be/be_codegen.cpp b/TAO/TAO_IDL/be/be_codegen.cpp
index c719d0fd582..fb86ff32f92 100644
--- a/TAO/TAO_IDL/be/be_codegen.cpp
+++ b/TAO/TAO_IDL/be/be_codegen.cpp
@@ -2043,4 +2043,14 @@ TAO_CodeGen::gen_typecode_includes (TAO_OutStream * stream)
this->gen_cond_file_include (idl_global->valuetype_seen_,
"tao/TypeCode_Value_Field.h",
stream);
+
+ // @@ Until we get idl_global->recursive_type_seen_ set
+ // automatically, include Recursive_Type_TypeCode.h whenever a
+ // struct, union or valuetype is seen, just in case.
+ this->gen_cond_file_include (idl_global->aggregate_seen_
+ | idl_global->union_seen_
+ | idl_global->valuetype_seen_, // idl_global->recursive_type_seen_,
+ "tao/Recursive_Type_TypeCode.h",
+ stream);
+
}
diff --git a/TAO/TAO_IDL/be/be_visitor_typecode/struct_typecode.cpp b/TAO/TAO_IDL/be/be_visitor_typecode/struct_typecode.cpp
index 72d1fa7dfa7..acf9272f7e7 100644
--- a/TAO/TAO_IDL/be/be_visitor_typecode/struct_typecode.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_typecode/struct_typecode.cpp
@@ -20,6 +20,7 @@ TAO::be_visitor_struct_typecode::be_visitor_struct_typecode (
be_visitor_context * ctx)
: be_visitor_typecode_defn (ctx)
, in_recursion_ (false)
+ , is_recursive_ (false)
{
}
@@ -31,11 +32,12 @@ TAO::be_visitor_struct_typecode::visit_structure (be_structure * node)
if (this->in_recursion_)
{
- // Nothing to do yet.
+ // This works because the same visitor instance is used for the
+ // top-level TypeCode and the indirected TypeCode in the member
+ // containing the recursive type (e.g. an anonymous sequence).
+
+ this->is_recursive_ = true;
- /**
- * @todo Merge recursive struct TypeCode generation code.
- */
return 0;
}
else
@@ -105,14 +107,35 @@ TAO::be_visitor_struct_typecode::visit (AST_Structure * node,
<< "};" << be_uidt_nl;
}
+ static char const StringType[] = "char const *";
+ static char const TypeCodeType[] = "CORBA::TypeCode_ptr const *";
+ static char const MemberArrayType[] =
+ "TAO::TypeCode::Struct_Field<char const *, "
+ "CORBA::TypeCode_ptr const *> const *";
+
// Generate the TypeCode instantiation.
+ os << "static ";
+
+ if (this->is_recursive_)
+ {
+ os << "TAO::TypeCode::Recursive_Type<" << be_idt_nl;
+ }
+
+ // -- TypeCodeBase --
+ os
+ << "TAO::TypeCode::Struct<" << StringType << "," << be_nl
+ << " " << TypeCodeType << "," << be_nl
+ << " " << MemberArrayType << "," << be_nl
+ << " TAO::Null_RefCount_Policy>";
+
+ if (this->is_recursive_)
+ {
+ os << "," << be_nl
+ << TypeCodeType << "," << be_nl
+ << MemberArrayType << " >" << be_uidt_nl;
+ }
+
os
- << "static TAO::TypeCode::Struct<char const *," << be_nl
- << " CORBA::TypeCode_ptr const *," << be_nl
- << " TAO::TypeCode::Struct_Field<char const *,"
- << be_nl
- << " CORBA::TypeCode_ptr const *> const *," << be_nl
- << " TAO::Null_RefCount_Policy>"
<< be_idt_nl
<< "_tao_tc_" << node->flat_name () << " (" << be_idt_nl
<< "CORBA::tk_" << (is_exception ? "except" : "struct") << ","
diff --git a/TAO/TAO_IDL/be/be_visitor_typecode/typecode_defn.cpp b/TAO/TAO_IDL/be/be_visitor_typecode/typecode_defn.cpp
index d11e172d084..4308a82c785 100644
--- a/TAO/TAO_IDL/be/be_visitor_typecode/typecode_defn.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_typecode/typecode_defn.cpp
@@ -66,6 +66,7 @@ Scoped_Compute_Queue_Guard::~Scoped_Compute_Queue_Guard (void)
be_visitor_typecode_defn::be_visitor_typecode_defn (be_visitor_context * ctx)
: be_visitor_scope (ctx),
+ recursion_detect_ (false),
computed_tc_size_ (0),
computed_encap_len_ (0),
computed_scope_encap_len_ (0),
@@ -940,6 +941,9 @@ be_visitor_typecode_defn::visit_sequence (be_sequence * node)
-1);
}
+ if (this->recursion_detect_)
+ return 0; // Nothing else to do.
+
// Multiple definition guards.
// @todo Can we automate duplicate detection within the IDL compiler
// itself?
@@ -985,7 +989,7 @@ be_visitor_typecode_defn::visit_sequence (be_sequence * node)
<< "}" << be_nl << be_nl;
os << "\n#endif /* _TAO_TYPECODE_" << node->flat_name () << "_GUARD */"
- << be_nl;
+ << be_nl << be_nl;
return 0; // this->gen_typecode_ptr (node);
}
@@ -1000,6 +1004,9 @@ be_visitor_typecode_defn::visit_string (be_string * node)
return 0;
}
+ if (this->recursion_detect_)
+ return 0; // Nothing else to do.
+
TAO_OutStream & os = *this->ctx_->stream ();
os << be_nl << be_nl
@@ -1039,7 +1046,7 @@ be_visitor_typecode_defn::visit_string (be_string * node)
<< "}" << be_nl << be_nl;
os << "\n#endif /* _TAO_TYPECODE_" << node->flat_name () << "_GUARD */"
- << be_nl;
+ << be_nl << be_nl;
return 0; // this->gen_typecode_ptr (node);
}
@@ -1055,34 +1062,37 @@ be_visitor_typecode_defn::visit_structure (be_structure * node)
return this->gen_forward_declared_typecode (node);
}
-// int
-// be_visitor_typecode_defn::visit_typedef (be_typedef *node)
-// {
-// switch (this->ctx_->sub_state ())
-// {
-// case TAO_CodeGen::TAO_TC_DEFN_TYPECODE:
-// return this->visit_type (node);
-// case TAO_CodeGen::TAO_TC_DEFN_TYPECODE_NESTED:
-// return this->gen_typecode (node);
-// case TAO_CodeGen::TAO_TC_DEFN_ENCAPSULATION:
-// return this->gen_encapsulation (node);
-// case TAO_CodeGen::TAO_TC_DEFN_TC_SIZE:
-// this->computed_tc_size_ = this->compute_tc_size (node);
-// return ((this->computed_tc_size_ > 0) ? 0 : -1);
-// case TAO_CodeGen::TAO_TC_DEFN_ENCAP_LEN:
-// this->computed_encap_len_ = this->compute_encap_length (node);
-// return ((this->computed_encap_len_ > 0) ? 0 : -1);
-// default:
-// // error
-// break;
-// }
+int
+be_visitor_typecode_defn::visit_typedef (be_typedef *node)
+{
+ // Only used for recursion detection.
-// ACE_ERROR_RETURN ((LM_ERROR,
-// ACE_TEXT ("(%N:%l) be_visitor_typecode_defn::")
-// ACE_TEXT ("visit - bad sub state ")
-// ACE_TEXT ("in visitor context\n")),
-// -1);
-// }
+ // The only base types with no-op visitors that will be potentially
+ // visited are strings and sequences. All others have their own
+ // full-fledged visitors (e.g. objref_typecode, etc.)
+
+ this->recursion_detect_ = true;
+
+ be_type * const base = be_type::narrow_from_decl (node->base_type ());
+
+ // Generate typecode for the base type, being careful to avoid doing
+ // so a for a typedef since that could recursively cause multiple
+ // base type TypeCode definitions to be generated.
+ if (!base || (base->accept (this) == -1))
+ {
+ this->recursion_detect_ = false;
+
+ ACE_ERROR_RETURN ((LM_ERROR,
+ ACE_TEXT ("(%N:%l) be_visitor_typecode_defn")
+ ACE_TEXT ("::visit_typedef) - ")
+ ACE_TEXT ("failed to visit base typecode\n")),
+ -1);
+ }
+
+ this->recursion_detect_ = false;
+
+ return 0;
+}
int
be_visitor_typecode_defn::visit_union (be_union *node)
diff --git a/TAO/TAO_IDL/be/be_visitor_typecode/union_typecode.cpp b/TAO/TAO_IDL/be/be_visitor_typecode/union_typecode.cpp
index 51a909b9bee..0d252952277 100644
--- a/TAO/TAO_IDL/be/be_visitor_typecode/union_typecode.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_typecode/union_typecode.cpp
@@ -17,6 +17,7 @@ TAO::be_visitor_union_typecode::be_visitor_union_typecode (
be_visitor_context * ctx)
: be_visitor_typecode_defn (ctx)
, in_recursion_ (false)
+ , is_recursive_ (false)
{
}
@@ -28,11 +29,12 @@ TAO::be_visitor_union_typecode::visit_union (be_union * node)
if (this->in_recursion_)
{
- // Nothing to do yet.
+ // This works because the same visitor instance is used for the
+ // top-level TypeCode and the indirected TypeCode in the member
+ // containing the recursive type (e.g. an anonymous sequence).
+
+ this->is_recursive_ = true;
- /**
- * @todo Merge recursive union TypeCode generation code.
- */
return 0;
}
else
@@ -62,14 +64,35 @@ TAO::be_visitor_union_typecode::visit_union (be_union * node)
if (this->visit_cases (node) != 0)
return -1;
+ static char const StringType[] = "char const *";
+ static char const TypeCodeType[] = "CORBA::TypeCode_ptr const *";
+ static char const MemberArrayType[] =
+ "TAO::TypeCode::Case<char const *, "
+ "CORBA::TypeCode_ptr const *> const * const *";
+
// Generate the TypeCode instantiation.
+ os << "static ";
+
+ if (this->is_recursive_)
+ {
+ os << "TAO::TypeCode::Recursive_Type<" << be_idt_nl;
+ }
+
+ // -- TypeCodeBase --
+ os
+ << "TAO::TypeCode::Union<" << StringType << "," << be_nl
+ << " " << TypeCodeType << "," << be_nl
+ << " " << MemberArrayType << "," << be_nl
+ << " TAO::Null_RefCount_Policy>";
+
+ if (this->is_recursive_)
+ {
+ os << "," << be_nl
+ << TypeCodeType << "," << be_nl
+ << MemberArrayType << " >" << be_uidt_nl;
+ }
+
os
- << "static TAO::TypeCode::Union<char const *," << be_nl
- << " CORBA::TypeCode_ptr const *," << be_nl
- << " TAO::TypeCode::Case<char const *," << be_nl
- << " CORBA::TypeCode_ptr const *>"
- << " const * const *," << be_nl
- << " TAO::Null_RefCount_Policy>"
<< be_idt_nl
<< "_tao_tc_" << node->flat_name () << " (" << be_idt_nl
<< "\"" << node->repoID () << "\"," << be_nl
diff --git a/TAO/TAO_IDL/be/be_visitor_typecode/value_typecode.cpp b/TAO/TAO_IDL/be/be_visitor_typecode/value_typecode.cpp
index 23a101d2473..0712c23671b 100644
--- a/TAO/TAO_IDL/be/be_visitor_typecode/value_typecode.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_typecode/value_typecode.cpp
@@ -20,6 +20,7 @@ TAO::be_visitor_value_typecode::be_visitor_value_typecode (
be_visitor_context * ctx)
: be_visitor_typecode_defn (ctx)
, in_recursion_ (false)
+ , is_recursive_ (false)
{
}
@@ -31,11 +32,12 @@ TAO::be_visitor_value_typecode::visit_valuetype (be_valuetype * node)
if (this->in_recursion_)
{
- // Nothing to do yet.
+ // This works because the same visitor instance is used for the
+ // top-level TypeCode and the indirected TypeCode in the member
+ // containing the recursive type (e.g. an anonymous sequence).
+
+ this->is_recursive_ = true;
- /**
- * @todo Merge recursive union TypeCode generation code.
- */
return 0;
}
else
@@ -120,14 +122,34 @@ TAO::be_visitor_value_typecode::visit_valuetype (be_valuetype * node)
// Generate the TypeCode instantiation.
- os << be_nl
- << "static TAO::TypeCode::Value<char const *," << be_nl
- << " CORBA::TypeCode_ptr const *," << be_nl
- << " TAO::TypeCode::Value_Field<char const *,"
- << be_nl
- << " CORBA::TypeCode_ptr const *> const *," << be_nl
- << " TAO::Null_RefCount_Policy>"
- << be_idt_nl
+ static char const StringType[] = "char const *";
+ static char const TypeCodeType[] = "CORBA::TypeCode_ptr const *";
+ static char const MemberArrayType[] =
+ "TAO::TypeCode::Value_Field<char const *, "
+ "CORBA::TypeCode_ptr const *> const *";
+
+ os << "static ";
+
+ if (this->is_recursive_)
+ {
+ os << "TAO::TypeCode::Recursive_Type<" << be_idt_nl;
+ }
+
+ // -- TypeCodeBase --
+ os
+ << "TAO::TypeCode::Value<" << StringType << "," << be_nl
+ << " " << TypeCodeType << "," << be_nl
+ << " " << MemberArrayType << "," << be_nl
+ << " TAO::Null_RefCount_Policy>";
+
+ if (this->is_recursive_)
+ {
+ os << "," << be_nl
+ << TypeCodeType << "," << be_nl
+ << MemberArrayType << " >" << be_uidt_nl;
+ }
+
+ os << be_idt_nl
<< "_tao_tc_" << node->flat_name () << " (" << be_idt_nl
<< "CORBA::tk_"
<< (dynamic_cast<be_eventtype *> (node) ? "event" : "value")
diff --git a/TAO/TAO_IDL/be_include/be_visitor_typecode/struct_typecode.h b/TAO/TAO_IDL/be_include/be_visitor_typecode/struct_typecode.h
index a4f06b6b244..c0b8bce7769 100644
--- a/TAO/TAO_IDL/be_include/be_visitor_typecode/struct_typecode.h
+++ b/TAO/TAO_IDL/be_include/be_visitor_typecode/struct_typecode.h
@@ -78,6 +78,13 @@ namespace TAO
*/
bool in_recursion_;
+ /// @c true if the struct is recursive.
+ /**
+ * @note Only applies for struct TypeCodes. Exceptions cannot be
+ * recursive.
+ */
+ bool is_recursive_;
+
};
}
diff --git a/TAO/TAO_IDL/be_include/be_visitor_typecode/typecode_defn.h b/TAO/TAO_IDL/be_include/be_visitor_typecode/typecode_defn.h
index aaf0410ae05..e97ea40da5b 100644
--- a/TAO/TAO_IDL/be_include/be_visitor_typecode/typecode_defn.h
+++ b/TAO/TAO_IDL/be_include/be_visitor_typecode/typecode_defn.h
@@ -90,6 +90,9 @@ public:
virtual int visit_structure (be_structure *node);
// visit a structure
+ // visit a typedef
+ virtual int visit_typedef (be_typedef *node);
+
virtual int visit_union (be_union *node);
// visit a union
@@ -295,10 +298,12 @@ protected:
bool is_typecode_generation_required (be_type * node);
private:
-
//
friend class Scoped_Compute_Queue_Guard;
+ /// @c true if we are detecting recursion.
+ bool recursion_detect_;
+
ACE_CDR::Long computed_tc_size_;
// the tc size of the node under consideration
diff --git a/TAO/TAO_IDL/be_include/be_visitor_typecode/union_typecode.h b/TAO/TAO_IDL/be_include/be_visitor_typecode/union_typecode.h
index 61a8e2093b7..25be2ddfa98 100644
--- a/TAO/TAO_IDL/be_include/be_visitor_typecode/union_typecode.h
+++ b/TAO/TAO_IDL/be_include/be_visitor_typecode/union_typecode.h
@@ -57,6 +57,9 @@ namespace TAO
/// this visitor.
bool in_recursion_;
+ /// @c true if the union is recursive.
+ bool is_recursive_;
+
};
}
diff --git a/TAO/TAO_IDL/be_include/be_visitor_typecode/value_typecode.h b/TAO/TAO_IDL/be_include/be_visitor_typecode/value_typecode.h
index b8f19e1c10e..25cd8381fa0 100644
--- a/TAO/TAO_IDL/be_include/be_visitor_typecode/value_typecode.h
+++ b/TAO/TAO_IDL/be_include/be_visitor_typecode/value_typecode.h
@@ -57,6 +57,9 @@ namespace TAO
/// generated using this visitor.
bool in_recursion_;
+ /// @c true if the valuetype or eventtype is recursive.
+ bool is_recursive_;
+
};
}
diff --git a/TAO/TAO_IDL/include/idl_global.h b/TAO/TAO_IDL/include/idl_global.h
index 735c0045cfe..b838cd8fe82 100644
--- a/TAO/TAO_IDL/include/idl_global.h
+++ b/TAO/TAO_IDL/include/idl_global.h
@@ -300,6 +300,7 @@ public:
bool octet_seq_seen_;
bool operation_seen_;
bool pseudo_seq_seen_;
+ bool recursive_type_seen_;
bool seq_seen_;
bool short_seq_seen_;
bool special_basic_arg_seen_;
diff --git a/TAO/TAO_IDL/util/utl_global.cpp b/TAO/TAO_IDL/util/utl_global.cpp
index 78fc80d1d9c..777d297ea57 100644
--- a/TAO/TAO_IDL/util/utl_global.cpp
+++ b/TAO/TAO_IDL/util/utl_global.cpp
@@ -232,6 +232,7 @@ IDL_GlobalData::reset_flag_seen (void)
octet_seq_seen_ = false;
operation_seen_ = false;
pseudo_seq_seen_ = false;
+ recursive_type_seen_ = false;
seq_seen_ = false;
short_seq_seen_ = false;
special_basic_arg_seen_ = false;
diff --git a/TAO/tao/Recursive_Type_TypeCode.cpp b/TAO/tao/Recursive_Type_TypeCode.cpp
index 21032d64309..e554dfaaaae 100644
--- a/TAO/tao/Recursive_Type_TypeCode.cpp
+++ b/TAO/tao/Recursive_Type_TypeCode.cpp
@@ -6,13 +6,15 @@
# include "tao/Recursive_Type_TypeCode.inl"
#endif /* __ACE_INLINE__ */
+#include "tao/CDR.h"
+
template <class TypeCodeBase, typename TypeCodeType, typename MemberArrayType>
bool
TAO::TypeCode::Recursive_Type<TypeCodeBase,
TypeCodeType,
MemberArrayType>::tao_marshal (
- TAO_Output & cdr) const
+ TAO_OutputCDR & cdr) const
{
ACE_GUARD_RETURN (TAO_SYNCH_RECURSIVE_MUTEX,
guard,
diff --git a/TAO/tao/Recursive_Type_TypeCode.h b/TAO/tao/Recursive_Type_TypeCode.h
index f6321ec2be1..e8b2a8e1ec5 100644
--- a/TAO/tao/Recursive_Type_TypeCode.h
+++ b/TAO/tao/Recursive_Type_TypeCode.h
@@ -13,11 +13,12 @@
*/
//=============================================================================
-#ifndef TAO_RECURSIVE_TYPECODE_H
-#define TAO_RECURSIVE_TYPECODE_H
+#ifndef TAO_RECURSIVE_TYPE_TYPECODE_H
+#define TAO_RECURSIVE_TYPE_TYPECODE_H
#include /**/ "ace/pre.h"
+#include "ace/Recursive_Thread_Mutex.h"
namespace TAO
{
@@ -137,6 +138,14 @@ namespace TAO
# include "tao/Recursive_Type_TypeCode.inl"
#endif /* __ACE_INLINE__ */
+#ifdef ACE_TEMPLATES_REQUIRE_SOURCE
+# include "tao/Recursive_Type_TypeCode.cpp"
+#endif /* ACE_TEMPLATES_REQUIRE_SOURCE */
+
+#ifdef ACE_TEMPLATES_REQUIRE_PRAGMA
+# pragma implementation ("Recursive_Type_TypeCode.cpp")
+#endif /* ACE_TEMPLATES_REQUIRE_PRAGMA */
+
#include /**/ "ace/post.h"
-#endif /* TAO_RECURSIVE_TYPECODE_H */
+#endif /* TAO_RECURSIVE_TYPE_TYPECODE_H */
diff --git a/TAO/tao/Recursive_Type_TypeCode.inl b/TAO/tao/Recursive_Type_TypeCode.inl
index ca82c860b99..73d9fd699d4 100644
--- a/TAO/tao/Recursive_Type_TypeCode.inl
+++ b/TAO/tao/Recursive_Type_TypeCode.inl
@@ -6,7 +6,7 @@ template <class TypeCodeBase, typename TypeCodeType, typename MemberArrayType>
ACE_INLINE
TAO::TypeCode::Recursive_Type<TypeCodeBase,
TypeCodeType,
- MemberArrayType>::RecursiveType (
+ MemberArrayType>::Recursive_Type (
CORBA::TCKind kind,
char const * id,
char const * name,
@@ -24,7 +24,7 @@ template <class TypeCodeBase, typename TypeCodeType, typename MemberArrayType>
ACE_INLINE
TAO::TypeCode::Recursive_Type<TypeCodeBase,
TypeCodeType,
- MemberArrayType>::RecursiveType (
+ MemberArrayType>::Recursive_Type (
char const * id,
char const * name,
#if defined (__BORLANDC__) && (__BORLANDC__ < 0x572)
@@ -51,7 +51,7 @@ template <class TypeCodeBase, typename TypeCodeType, typename MemberArrayType>
ACE_INLINE
TAO::TypeCode::Recursive_Type<TypeCodeBase,
TypeCodeType,
- MemberArrayType>::RecursiveType (
+ MemberArrayType>::Recursive_Type (
CORBA::TCKind kind,
char const * id,
char const * name,
@@ -63,7 +63,7 @@ TAO::TypeCode::Recursive_Type<TypeCodeBase,
#endif
MemberArrayType const & fields,
CORBA::ULong nfields)
- TypeCodeBase (kind,
+ : TypeCodeBase (kind,
id,
name,
modifier,