diff options
author | parsons <parsons@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 2000-12-06 23:35:53 +0000 |
---|---|---|
committer | parsons <parsons@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 2000-12-06 23:35:53 +0000 |
commit | 35893df9ccf6fee2c5ad8acfd26ff9db17f5f43d (patch) | |
tree | a8363604533502cabd3eea4a948491fdada4f7bc | |
parent | 19e8dc27038977b70c8b338783590849bc0df787 (diff) | |
download | ATCD-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.cpp | 24 | ||||
-rw-r--r-- | TAO/TAO_IDL/be/be_visitor_operation/rettype.cpp | 9 | ||||
-rw-r--r-- | TAO/tao/corbafwd.h | 1 |
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; |