summaryrefslogtreecommitdiff
path: root/TAO/TAO_IDL/be/be_visitor_operation/argument.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'TAO/TAO_IDL/be/be_visitor_operation/argument.cpp')
-rw-r--r--TAO/TAO_IDL/be/be_visitor_operation/argument.cpp19
1 files changed, 11 insertions, 8 deletions
diff --git a/TAO/TAO_IDL/be/be_visitor_operation/argument.cpp b/TAO/TAO_IDL/be/be_visitor_operation/argument.cpp
index a36fd00d9a4..c50bd87c007 100644
--- a/TAO/TAO_IDL/be/be_visitor_operation/argument.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_operation/argument.cpp
@@ -61,6 +61,7 @@ be_visitor_operation_argument::post_process (be_decl *bd)
case TAO_CodeGen::TAO_OPERATION_ARG_MARSHAL_SS:
*os << ",\n";
break;
+ case TAO_CodeGen::TAO_AMI_HANDLER_OPERATION_COLLOCATED_ARG_UPCALL_CS:
case TAO_CodeGen::TAO_AMI_HANDLER_OPERATION_ARG_UPCALL_CS:
{
// @@ Michael
@@ -68,7 +69,8 @@ be_visitor_operation_argument::post_process (be_decl *bd)
// print a comma for in arguments.
// This is due to the concept of post processing,
// which I was not able to prevent to be executed
- // in the case of in arguments.
+ // in the case of in arguments. Post processing
+ // does always write a comma, though.
be_argument *arg = this->ctx_->be_node_as_argument ();
ACE_ASSERT (arg != 0);
if (arg->direction () != AST_Argument::dir_IN)
@@ -105,7 +107,6 @@ be_visitor_operation_argument::visit_operation (be_operation *node)
{
case TAO_CodeGen::TAO_OPERATION_ARG_UPCALL_SS:
case TAO_CodeGen::TAO_OPERATION_COLLOCATED_ARG_UPCALL_SS:
- case TAO_CodeGen::TAO_AMI_HANDLER_OPERATION_ARG_UPCALL_CS:
// applicable only to these cases where the actual upcall is made
// last argument is the environment
@@ -115,6 +116,11 @@ be_visitor_operation_argument::visit_operation (be_operation *node)
os->indent ();
*os << "ACE_TRY_ENV";
break;
+ case TAO_CodeGen::TAO_AMI_HANDLER_OPERATION_COLLOCATED_ARG_UPCALL_CS:
+ case TAO_CodeGen::TAO_AMI_HANDLER_OPERATION_ARG_UPCALL_CS:
+ os->indent ();
+ *os << "ACE_TRY_ENV";
+ break;
default:
break;
}
@@ -173,9 +179,6 @@ be_visitor_operation_argument::visit_argument (be_argument *node)
case TAO_CodeGen::TAO_AMI_OPERATION_ARG_INVOKE_CS:
ctx.state (TAO_CodeGen::TAO_AMI_ARGUMENT_INVOKE_CS);
break;
-// @@ Michael case TAO_CodeGen::TAO_AMI_HANDLER_OPERATION_ARG_INVOKE_CS:
-// ctx.state (TAO_CodeGen::TAO_AMI_HANDLER_ARGUMENT_INVOKE_CS);
-// break;
case TAO_CodeGen::TAO_OPERATION_ARG_POST_INVOKE_CS:
ctx.state (TAO_CodeGen::TAO_ARGUMENT_POST_INVOKE_CS);
break;
@@ -206,6 +209,9 @@ be_visitor_operation_argument::visit_argument (be_argument *node)
case TAO_CodeGen::TAO_OPERATION_ARG_UPCALL_SS:
ctx.state (TAO_CodeGen::TAO_ARGUMENT_UPCALL_SS);
break;
+ case TAO_CodeGen::TAO_AMI_HANDLER_OPERATION_COLLOCATED_ARG_UPCALL_CS:
+ ctx.state (TAO_CodeGen::TAO_AMI_HANDLER_ARGUMENT_COLLOCATED_UPCALL_CS);
+ break;
case TAO_CodeGen::TAO_AMI_HANDLER_OPERATION_ARG_UPCALL_CS:
ctx.state (TAO_CodeGen::TAO_AMI_HANDLER_ARGUMENT_UPCALL_CS);
break;
@@ -215,9 +221,6 @@ be_visitor_operation_argument::visit_argument (be_argument *node)
case TAO_CodeGen::TAO_OPERATION_ARG_POST_MARSHAL_SS:
ctx.state (TAO_CodeGen::TAO_ARGUMENT_POST_MARSHAL_SS);
break;
- // case TAO_CodeGen::TAO_OPERATION_ARG_AMI:
- // ctx.state (TAO_CodeGen::TAO_ARGUMENT_AMI);
- // break;
default:
{
ACE_ERROR_RETURN ((LM_ERROR,