summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorparsons <parsons@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2000-12-06 23:35:53 +0000
committerparsons <parsons@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2000-12-06 23:35:53 +0000
commit35893df9ccf6fee2c5ad8acfd26ff9db17f5f43d (patch)
treea8363604533502cabd3eea4a948491fdada4f7bc
parent19e8dc27038977b70c8b338783590849bc0df787 (diff)
downloadATCD-35893df9ccf6fee2c5ad8acfd26ff9db17f5f43d.tar.gz
ChangeLogTag: Wed Dec 6 17:06:17 2000 Jeff Parsons <parsons@cs.wustl.edu>
-rw-r--r--TAO/TAO_IDL/be/be_visitor_argument/arglist.cpp24
-rw-r--r--TAO/TAO_IDL/be/be_visitor_operation/rettype.cpp9
-rw-r--r--TAO/tao/corbafwd.h1
3 files changed, 31 insertions, 3 deletions
diff --git a/TAO/TAO_IDL/be/be_visitor_argument/arglist.cpp b/TAO/TAO_IDL/be/be_visitor_argument/arglist.cpp
index 2cdebc5897b..d686fa83cdf 100644
--- a/TAO/TAO_IDL/be/be_visitor_argument/arglist.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_argument/arglist.cpp
@@ -187,13 +187,33 @@ int be_visitor_args_arglist::visit_predefined_type (be_predefined_type *node)
} // end of if
else if (node->pt () == AST_PredefinedType::PT_pseudo) // e.g., CORBA::Object
{
+ // The only PT_pseudo that doesn't take a _ptr suffix.
+ idl_bool is_tckind =
+ (ACE_OS::strcmp (node->local_name ()->get_string (), "TCKind") == 0);
+
switch (this->direction ())
{
case AST_Argument::dir_IN:
- *os << this->type_name (node, "_ptr");
+ if (is_tckind)
+ {
+ *os << this->type_name (node);
+ }
+ else
+ {
+ *os << this->type_name (node, "_ptr");
+ }
+
break;
case AST_Argument::dir_INOUT:
- *os << this->type_name (node, "_ptr") << " &";
+ if (is_tckind)
+ {
+ *os << this->type_name (node) << " &";
+ }
+ else
+ {
+ *os << this->type_name (node, "_ptr") << " &";
+ }
+
break;
case AST_Argument::dir_OUT:
*os << this->type_name (node, "_out");
diff --git a/TAO/TAO_IDL/be/be_visitor_operation/rettype.cpp b/TAO/TAO_IDL/be/be_visitor_operation/rettype.cpp
index 1c743f9ca80..b784117fea7 100644
--- a/TAO/TAO_IDL/be/be_visitor_operation/rettype.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_operation/rettype.cpp
@@ -193,7 +193,14 @@ be_visitor_operation_rettype::visit_predefined_type (be_predefined_type *node)
switch (node->pt ())
{
case AST_PredefinedType::PT_pseudo:
- *os << bt->name () << "_ptr";
+ *os << bt->name ();// << "_ptr";
+
+ // If it's not TCKind, it's either TypeCode or ValueBase.
+ if (ACE_OS::strcmp (bt->local_name ()->get_string (), "TCKind") != 0)
+ {
+ *os << "_ptr";
+ }
+
break;
case AST_PredefinedType::PT_any:
{
diff --git a/TAO/tao/corbafwd.h b/TAO/tao/corbafwd.h
index d4c645ebf75..7e53349dc1f 100644
--- a/TAO/tao/corbafwd.h
+++ b/TAO/tao/corbafwd.h
@@ -743,6 +743,7 @@ TAO_NAMESPACE CORBA
TC_KIND_COUNT
};
+ typedef TCKind &TCKind_out;
// All the typecode constants
TAO_NAMESPACE_STORAGE_CLASS TypeCode_ptr _tc_null;