summaryrefslogtreecommitdiff
path: root/TAO/TAO_IDL/be/be_visitor_argument
diff options
context:
space:
mode:
authorbala <bala@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2003-04-22 20:53:09 +0000
committerbala <bala@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2003-04-22 20:53:09 +0000
commit44b81cd111b358fa4d8ee055f719d8824679efd1 (patch)
treeb325bb726be5c711dfe09e642820f85ea7c01e02 /TAO/TAO_IDL/be/be_visitor_argument
parentcc6af3602c9ebafccde48c64ce53e26f19eb5e4c (diff)
downloadATCD-44b81cd111b358fa4d8ee055f719d8824679efd1.tar.gz
ChangeLogTag:Tue Apr 22 14:58:33 2003 Balachandran Natarajan <bala@dre.vanderbilt.edu>
Diffstat (limited to 'TAO/TAO_IDL/be/be_visitor_argument')
-rw-r--r--TAO/TAO_IDL/be/be_visitor_argument/arglist.cpp15
-rw-r--r--TAO/TAO_IDL/be/be_visitor_argument/post_invoke_cs.cpp17
2 files changed, 29 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 45384a20aee..e96f7a34285 100644
--- a/TAO/TAO_IDL/be/be_visitor_argument/arglist.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_argument/arglist.cpp
@@ -199,6 +199,21 @@ int be_visitor_args_arglist::visit_predefined_type (be_predefined_type *node)
break;
}
}
+ else if (pt == AST_PredefinedType::PT_value)
+ {
+ switch (this->direction ())
+ {
+ case AST_Argument::dir_IN:
+ *os << this->type_name (node) << " *";
+ break;
+ case AST_Argument::dir_INOUT:
+ *os << this->type_name (node) << " *&";
+ break;
+ case AST_Argument::dir_OUT:
+ *os << this->type_name (node, "_out");
+ break;
+ }
+ }
else if (pt == AST_PredefinedType::PT_pseudo
|| pt == AST_PredefinedType::PT_object)
{
diff --git a/TAO/TAO_IDL/be/be_visitor_argument/post_invoke_cs.cpp b/TAO/TAO_IDL/be/be_visitor_argument/post_invoke_cs.cpp
index 36f9eabcbcf..114c4bb0308 100644
--- a/TAO/TAO_IDL/be/be_visitor_argument/post_invoke_cs.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_argument/post_invoke_cs.cpp
@@ -85,15 +85,26 @@ be_visitor_args_post_invoke_cs::visit_interface (be_interface *node)
{
case AST_Argument::dir_INOUT:
{
+ *os << be_nl;
+
// Assign the narrowed obj reference.
if (node->is_defined ())
{
- *os << "CORBA::release (" << arg->local_name () << ");" << be_nl;
+ *os << "CORBA::release (" << arg->local_name () << ");";
}
else
{
- *os << "tao_" << node->flat_name () << "_release ("
- << arg->local_name () << ");" << be_nl;
+ AST_Decl *parent = ScopeAsDecl (node->defined_in ());
+
+ if (parent != 0 && parent->node_type () != AST_Decl::NT_root)
+ {
+ *os << parent->name () << "::";
+ }
+
+ *os << "tao_" << node->local_name () << "_life::tao_release ("
+ << be_idt << be_idt_nl
+ << arg->local_name () << be_uidt_nl
+ << ");" << be_uidt;
}
}
break;